VB.NETで文字列を連結する方法を完全ガイド!&演算子とString.Concatの使い方
生徒
「先生、苗字と名前を別々の変数に保存したのですが、これをつなげて一つの名前にする方法はありますか?」
先生
「VB.NETでは、『文字列の連結(れんけつ)』という操作を行うことで、複数の文字を自由につなげることができますよ。」
生徒
「文字同士を接着剤みたいにくっつけるイメージですか?」
先生
「まさにその通りです!いくつか方法がありますが、まずは一番簡単な『&』記号を使う方法から見ていきましょう!」
1. 文字列の連結(れんけつ)とは?
プログラミングにおける連結(れんけつ)とは、バラバラになっている文字や文章をくっつけて、新しい一つの文章を作る作業のことです。 例えば、「山田」という苗字と「太郎」という名前を組み合わせて「山田太郎」にしたり、「今日は」と「晴れです」をつなげて「今日は晴れです」という挨拶を作ったりします。
VB.NET(ヴィービー・ドットネット)では、この連結作業が非常によく使われます。ユーザーへのメッセージを作ったり、データベースに保存するデータを作成したりと、アプリケーション開発には欠かせない基本中の基本のテクニックです。
2. 最も一般的な「&演算子」の使い方
VB.NETで文字列をつなぐ最もポピュラーな方法は、&(アンパサンド)という記号を使う方法です。 この記号は、左右にある文字同士をくっつける「接着剤」のような役割を果たします。
演算子(えんざんし)とは、計算や操作を行うための記号のことです。足し算の「+」と同じ仲間だと考えてください。文字を足すときは「&」を使う、と覚えましょう。
' 苗字と名前を別々の箱に入れます
Dim firstName As String = "太郎"
Dim lastName As String = "山田"
' 「&」を使って連結し、フルネームを作ります
Dim fullName As String = lastName & firstName
' 結果を表示します
Console.WriteLine(fullName)
実行結果は以下の通りです。
山田太郎
3. 文字列と変数を混ぜて連結する
「&」を使えば、変数(中身が変わる箱)と、直接書いた文字(リテラル)を混ぜてつなげることもできます。 例えば、ユーザーの名前に挨拶を付け足したいときに便利です。
Dim userName As String = "田中"
' 変数の後ろに「さん、こんにちは!」をくっつけます
Dim greeting As String = userName & "さん、こんにちは!"
Console.WriteLine(greeting)
実行結果は以下の通りです。
田中さん、こんにちは!
このように、文字を直接書くときは " "(ダブルクォーテーション)で囲むのを忘れないようにしましょう。
4. 「+演算子」と「&演算子」の違いに注意!
他のプログラミング言語では「+」を使って文字をつなぐこともありますが、VB.NETでは必ず「&」を使うことが推奨されています。
なぜなら、VB.NETで「+」を使うと、もし片方が数字だった場合に「足し算」なのか「文字の連結」なのかパソコンが迷ってしまうからです。 意図しない計算エラーを防ぐために、「文字をつなぐときはアンパサンド(&)」と習慣づけておきましょう。
5. String.Concat(ストリング・コンカット)とは?
「&」以外にも、String.Concat という命令を使って文字をつなげる方法があります。 String(文字列)という種類のデータが持っている、Concat(連結する、という意味の単語の略)という専用の機能です。
これは、たくさんの言葉を一度にまとめてつなげたいときに非常に便利です。たくさんの材料を一つのボウルに入れて混ぜ合わせるようなイメージですね。
6. String.Concat を使った連結の実践
実際に String.Concat を使って、複数の単語を一つにまとめてみましょう。
Dim word1 As String = "プログラミング"
Dim word2 As String = "学習"
Dim word3 As String = "楽しい"
' String.Concatで3つの変数をまとめて連結します
Dim result As String = String.Concat(word1, word2, word3)
Console.WriteLine(result)
実行結果は以下の通りです。
プログラミング学習楽しい
String.Concat は、中身が空っぽ(Nothing)の変数が混ざっていても、エラーを出さずに上手く処理してくれるという、初心者にも優しい特徴を持っています。
7. 連結する時の落とし穴:スペースの入れ忘れ
英単語をつなげる場合や、日本語でも見やすくしたい場合に多いミスが「スペースの入れ忘れ」です。 「山田」と「太郎」をそのままつなぐと「山田太郎」になりますが、間にスペースを入れたい場合は、スペースという「文字」も連結する必要があります。
Dim lastName As String = "Yamada"
Dim firstName As String = "Taro"
' 間に半角スペースを挟んで連結します
Dim fullName As String = lastName & " " & firstName
Console.WriteLine(fullName)
Yamada Taro
" " のように、ダブルクォーテーションの間に空白を入れることで、一つの文字として扱われます。
8. 大量に文字をつなげる時のパフォーマンス
「&」や String.Concat は数個の連結には最適ですが、何千回、何万回と繰り返して文字をつなげる場合は、パソコンの動作が少し重くなってしまうことがあります。
VB.NETの文字列は、一度作ると「書き換えができない」という性質(不変性)があるため、つなげるたびに新しい文字をメモリという作業場に作り直しているからです。 初心者の方はまずは「&」で十分ですが、大量のデータを扱うときには「StringBuilder」という別の道具があることだけ、頭の片隅に置いておきましょう。
9. 数値と文字列を連結する方法
計算した結果(数値)を、説明文(文字列)と一緒に表示したいこともよくあります。 VB.NETはとても賢いので、「&」を使えば数値を自動的に文字に変換して連結してくれます。
Dim age As Integer = 25
' 数値の変数と文字を連結します
Dim message As String = "私は" & age & "歳です。"
Console.WriteLine(message)
私は25歳です。
このように、データ型が違うもの同士でもスムーズに連結できるのがVB.NETの魅力の一つです。
10. 連結マスターへの道
文字列の連結をマスターすると、プログラムがユーザーに伝える情報のバリエーションがぐっと広がります。 「&」記号はキーボードの「6」のキーのところにあります。最初は打つのが少し大変かもしれませんが、すぐに慣れるはずです。
自分で作った変数や、好きな言葉をどんどんつなげて、画面にメッセージを表示させてみてください。 思い通りの文章が作れるようになると、プログラミングがどんどん楽しくなっていきますよ!