ここではVB.NETでStringsクラスを使った文字列の連結、文字列の情報の取得、文字列の状態の調べ方を紹介します。

目次

文字列を編集する

文字列を連結する(String.Concatメソッド)

Dim str1 As String = "ABC"
Dim str2 As String = "DEF"
Console.WriteLine(String.Concat(str1, str2)) ' 実行結果:ABCDEF


文字列を連結する(StringBuilder.Appendメソッド)

Dim str1 As String = "ABC"
Dim str2 As String = "DEF"
Dim str As New System.Text.StringBuilder()
str.Append(str1)
str.Append(str2)
Console.WriteLine(str) ' 実行結果:ABCDEF


文字列を挿入する(String.Insertメソッド)

Dim str1 As String = "ABCGHI"

' 3文字目の後に文字列 "456" を挿入する
Dim str = str1.Insert(3, "456")
Console.WriteLine(str) ' 実行結果:ABC456GHI


文字列を削除する(String.Removeメソッド)

Dim str1 As String = "ABC**DEF"

' 3文字目の後から 2文字を削除する
Dim str = str1.Remove(3, 2)
Console.WriteLine(str) ' 実行結果:ABCDEF


文字列を大文字に変換する(String.ToUpperメソッド)

Dim str1 As String = "abcdef"
Dim str As String = str1.ToUpper()
Console.WriteLine(str) ' 実行結果:ABCDEF


文字列を小文字に変換する(String.ToLowerメソッド)

Dim str1 As String = "ABCDEF"
Dim str As String = str1.ToLower()
Console.WriteLine(str) ' 実行結果:abcdef


文字列の前後の空白文字を削除する(String.Trimメソッド)

Dim str1 As String = "  ABC "

' 前後の空白文字を削除する
Console.WriteLine("[" & str1.Trim() & "]") ' 実行結果:[ABC]


文字列の先頭の空白文字を削除する(String.TrimStartメソッド)

Dim str1 As String = "  ABC "

' 先頭の空白文字を削除する
Console.WriteLine("[" & str1.TrimStart() & "]") ' 実行結果:[ABC ]


文字列の末尾の空白文字を削除する(String.TrimEndメソッド)

Dim str1 As String = "  ABC "

' 末尾の空白文字を削除する
Console.WriteLine("[" & str1.TrimEnd() & "]") ' 実行結果:[  ABC]


指定の文字数になるまで先頭を文字で埋める(String.PadLeftメソッド)

Dim str1 As String = "ABC"

' 文字列の先頭に5文字になるまで空白を埋める
Console.WriteLine("[" & str1.PadLeft(5) & "]") ' 実行結果:[  ABC]


指定の文字数になるまで末尾を文字で埋める(String.PadRightメソッド

Dim str1 As String = "ABC"

' 文字列の末尾に5文字になるまで空白を埋める
Console.WriteLine("[" & str1.PadRight(5) & "]") ' 実行結果:[ABC  ]


配列の各要素を指定した区切り文字で連結する(String.Joinメソッド)

Dim str1 As String
Dim arr() As String = {"A", "B", "C"}

' カンマ区切りで配列の各要素を連結して1つの文字列する
str1 = String.Join(",", arr)

Console.WriteLine(str1) ' 実行結果:A,B,C


文字列を区切り文字で分割して配列に格納する(String.Splitメソッド)

Dim str1 As String = "A,B,C,D,E"
Dim arr() As String

' カンマ区切りで文字列を分割して配列に格納する
arr = str1.Split(",")

For i = 0 To arr.Length - 1
    Console.WriteLine(arr(i))
Next
' 実行結果:
' A
' B
' C
' D
' E


文字列の情報を取得する

文字列の一部を取り出する(String.Substringメソッド)

Dim str1 As String = "ABCDEF"

' 2文字目の後から3文字の文字列を取得する
Console.WriteLine(str1.Substring(2, 3)) ' 実行結果:CDE


Dim str1 As String = "ABCDEF"

' 3文字目の後から末尾までの文字列を取得する
Console.WriteLine(str1.Substring(3)) ' 実行結果:DEF


文字列の左から指定した文字数を取り出する(Strings.Leftメソッド)

Dim str1 As String = "ABCDEF"

'左から3文字を取得する
Console.WriteLine(Strings.Left(str1, 3)) ' 実行結果:ABC


文字列の右から指定した文字数を取り出する(Strings.Rightメソッド)

Dim str1 As String = "ABCDEF"

'右から3文字を取得する
Console.WriteLine(Strings.Right(str1, 3)) ' 実行結果:DEF


文字列を前から検索して位置を取得する(String.IndexOfメソッド)

Dim str1 As String = "ABCDEFABCDEF"

' 先頭から "C" を検索する
Console.WriteLine(str1.IndexOf("C")) ' 実行結果:2


Dim str1 As String = "ABCDEFABCDEF"

' 2文字目から "A" を検索する
Console.WriteLine(str1.IndexOf("A", 2)) ' 実行結果:6

位置は0から始まります。また、該当の文字がなかったときは-1を返します。


文字列を後から検索して位置を取得する(String.lastIndexOfメソッド)

Dim str1 As String = "ABCDEFABCDEF"

' 末尾から "C" を検索する
Console.WriteLine(str1.LastIndexOf("C")) ' 実行結果:8


Dim str1 As String = "ABCDEFABCDEF"

' 10文字目から "A" を検索する
Console.WriteLine(str1.LastIndexOf("A", 10)) ' 実行結果:6

位置は0から始まります。また、該当の文字がなかったときは-1を返します。

文字列の状態を調べる

文字列がnullまたは空文字か調べる(String.IsNullOrEmptyメソッド)

Dim str1 As String = Nothing

If String.IsNullOrEmpty(str1) Then
    Console.WriteLine("空文字です")
Else
    Console.WriteLine("空文字ではありません")
End If
' 実行結果:空文字です


文字列がnullまたは空文字または空白文字か調べる(String.IsNullOrWhiteSpaceメソッド

Dim str1 As String = "  " ' 半角空白2文字

If String.IsNullOrWhiteSpace(str1) Then
    Console.WriteLine("空文字です")
Else
    Console.WriteLine("空文字ではありません")
End If
' 実行結果:空文字です


文字列を大文字・小文字を区別しないで比較する(String.Compareメソッド)

大文字・小文字を区別しないで比較する場合は、第3引数を省略またはFalseにします。

Dim str1 As String = "ABCDEF"
Dim str2 As String = "abcdef"

' 第3引数を省略またはFalseの場合は大文字・小文字を区別しない
If String.Compare(str1, str2) Then
    Console.WriteLine(str1 & "と" & str2 & "は等しい")
Else
    Console.WriteLine(str1 & "と" & str2 & "は違う")
End If
' 実行結果:ABCDEFとabcdefは等しい


文字列を大文字・小文字を区別して比較する(String.Compareメソッド)

大文字・小文字を区別して比較する場合は、第3引数をTrueにします。

Dim str1 As String = "ABCDEF"
Dim str2 As String = "abcdef"

' 第3引数がTrueの場合は大文字・小文字を区別する
If String.Compare(str1, str2, True) Then
    Console.WriteLine(str1 & "と" & str2 & "は等しい")
Else
    Console.WriteLine(str1 & "と" & str2 & "は違う")
End If
' 実行結果:ABCDEFとabcdefは違う


文字列内に指定の文字列があるか調べる(String.Containsメソッド)

Dim str1 As String = "ABCDEF"

' あればTrueを返す
If str1.Contains("CD") Then
    Console.WriteLine("ある")
Else
    Console.WriteLine("ない")
End If
' 実行結果:ある


文字列が指定文字列で始まっているか調べる(String.StartsWithメソッド)

Dim str1 As String = "ABCDEF"

' あればTrueを返します
If str1.StartsWith("AB") Then
    Console.WriteLine("ある")
Else
    Console.WriteLine("ない")
End If
' 実行結果:ある


文字列が指定文字列で終わっているか調べる(String.EndsWithメソッド)

Dim str1 As String = "ABCDEF"

' あればTrueを返します
If str1.EndsWith("EF") Then
    Console.WriteLine("ある")
Else
    Console.WriteLine("ない")
End If
' 実行結果:ある


以上、VB.NETでStringsクラスを使った文字列の連結、文字列の情報の取得、文字列の状態の調べ方について解説しました。