【VB.NET】文字列を連結する方法

VB.NET
この記事は約4分で読めます。

【VB.NET】文字列を連結する方法

VB.NETで文字列を連結する方法を紹介します。

& 演算子を使う

数字であっても文字列として連結してくれます。

Module Module1

    Sub Main()

        Dim x = 123
        Dim y = 456
        Dim z = "あいう"

        ' 連結
        Console.WriteLine(x & y) '123456

        ' 連結
        Console.WriteLine(x & y & z) '123456あいう

    End Sub

End Module

+ 演算子を使う

&演算子と違い連結するものが文字列である必要があります。

Module Module1

    Sub Main()

        Dim x = 123
        Dim y = 456
        Dim z = "あいう"

        ' 連結
        Console.WriteLine(x + y) '579

        ' 連結
        ' Console.WriteLine(x + y + z)
        ' System.InvalidCastException 発生

        ' 連結
        Console.WriteLine(x.ToString + y.ToString + z) '123456あいう

    End Sub

End Module

String.Concat を使う

数字であっても文字列として連結してくれます。

文字列連結するように用意さているメソッドです。

Module Module1

    Sub Main()

        Dim x = 123
        Dim y = 456
        Dim z = "あいう"

        ' 連結
        Console.WriteLine(String.Concat(x, y)) '123456

        ' 連結
        Console.WriteLine(String.Concat(x, y, z)) '123456あいう

    End Sub

End Module

System.Text.StringBuilder.Append を使う

数字であっても文字列として連結してくれます。

大量の文字列を連結するに用意されているメソッドです。

Module Module1

    Sub Main()

        Dim x = 123
        Dim y = 456
        Dim z = "あいう"

        Dim sb = New System.Text.StringBuilder

        sb.Append(x)
        sb.Append(y)

        ' 連結
        Console.WriteLine(sb) '123456

        ' 連結
        sb.Append(z)

        Console.WriteLine(sb) '123456あいう

    End Sub

End Module

String.Format を使う

人のソースを読んでていると結構な頻度で見かけます。

Module Module1

    Sub Main()

        Dim x = 123
        Dim y = 456
        Dim z = "あいう"

        ' 連結
        Console.WriteLine(String.Format("{0}{1}", x, y)) '123456

        ' 連結
        Console.WriteLine(String.Format("{0}{1}{2}", x, y, z)) '123456あいう

    End Sub

End Module

Strings.Joinを使う

使う人を見たことはないですが、こんな方法もありますよって感じで紹介します。

StringクラスではなくStringsクラスのメソッドです
Module Module1

    Sub Main()

        Dim x = 123
        Dim y = 456
        Dim z = "あいう"

        ' 連結
        Console.WriteLine(Strings.Join({x, y}, "")) '123456

        ' 連結
        Console.WriteLine(Strings.Join({x, y, z}, "")) '123456あいう

    End Sub

End Module

コメント

タイトルとURLをコピーしました