ここでは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クラスを使った文字列の連結、文字列の情報の取得、文字列の状態の調べ方について解説しました。