VB.NET で文字列操作する関数・メソッドの一覧
System
先頭・末尾の文字列検索 (StartsWith, EndsWith)
Dim str As String = "test.csv"
Console.WriteLine(str.StartsWith("hoge")) ' => False
Console.WriteLine(str.EndsWith("csv")) ' => True
指定文字列で連結 (Join)
Dim strings() As String = {"abc", "DEF", "123"}
Console.WriteLine(String.Join("|", strings)) ' => abc|DEF|123
右寄せ左寄せ (PadLeft, PadRight)
Dim s1 As String = "123"
Console.WriteLine(s1.PadLeft(7, "0"c)) ' => 0000123
Console.WriteLine(s1.PadRight(7, "."c)) ' => 123....
前後の空白を削除 (Trim)
Dim s1 As String = " " + vbTab + " 123 " + vbCrLf + " "
Console.WriteLine(s1.Trim) ' => "123"
Console.WriteLine(s1.TrimStart) ' => "123 \n "
Console.WriteLine(s1.TrimEnd) ' => " \t 123"
部分文字列 (Substring)
Dim s1 As String = "abcdEFG"
Console.WriteLine(s1(2)) ' => c
Console.WriteLine(s1.Substring(1, 3)) ' => bcd
文字列が空か判定 (IsNullOrEmpty)
Dim s1 As String = Nothing
Console.WriteLine(String.IsNullOrEmpty(s1)) ' => True
s1 = String.Empty
Console.WriteLine(String.IsNullOrEmpty(s1)) ' => True
s1 = "a"
Console.WriteLine(String.IsNullOrEmpty(s1)) ' => False
文字列の検索 (IndexOf)
Dim str As String = "abcDEFghiDEF"
Console.WriteLine(str.IndexOf("def")) ' => -1
Console.WriteLine(str.IndexOf("DEF")) ' => 3
Console.WriteLine(str.LastIndexOf("DEF")) ' => 9
文字列の削除 (Remove)
Dim s1 = "abcDEFghi"
Console.WriteLine(s1.Remove(3, 3)) ' => abcghi
文字列の挿入 (Insert)
Dim s1 = "abcghi"
Console.WriteLine(s1.Insert(3, "DEF")) ' => abcDEFghi
文字列の置換 (Replace)
Dim s1 = "abcDEFghiZZZ123abc"
Console.WriteLine(s1.Replace("abc", "あいうえお")) ' => あいうえおDEFghiZZZ123あいうえお
文字列を含むか (Contains)
Dim str As String = "abcDEFghi"
Console.WriteLine(str.Contains("def")) ' => False
Console.WriteLine(str.Contains("DEF")) ' => True
文字列整形 (Format)
Dim i1 As Integer = 1234567
Console.WriteLine(String.Format("{0}", i1)) ' => 1234567
Console.WriteLine(String.Format("{0:N}", i1)) ' => 1,234,567.00
Console.WriteLine(String.Format("{0:N0}", i1)) ' => 1,234,567
Console.WriteLine(String.Format("{0:C}", i1)) ' => ï¿¥1,234,567
Console.WriteLine(String.Format("{0:D9}", i1)) ' => 001234567
文字列分割 (Split)
Dim str As String = "abc,def,,123,ZZZ"
Dim result() As String = str.Split(",")
Console.WriteLine(String.Join("|", result)) ' => abc|def||123|ZZZ
System.Text
エンコーディング
Dim utf8 = Encoding.UTF8
Dim s1 As String = "こんにちは"
Dim b1() As Byte = utf8.GetBytes(s1)
Console.WriteLine(BitConverter.ToString(b1))
' => E3-81-93-E3-82-93-E3-81-AB-E3-81-A1-E3-81-AF
Console.WriteLine(utf8.GetString(b1))
' => こんにちは
可変の文字列バッファ (StringBuilder)
Dim sb1 As New StringBuilder("0")
For index = 1 To 10
sb1.Append(", " + CStr(index))
Next
Console.WriteLine(sb1) ' => 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
System.Text.RegularExpressions
正規表現で検索とグループ
Dim s1 As String = "026-123-4567"
Console.WriteLine(Regex.IsMatch(s1, "\d{3}-\d{3}-\d{4}")) ' => True
Dim m As Match = Regex.Match(s1, "(\d{3})-(\d{3})-(\d{4})")
Console.WriteLine("index: {0}, match: {1}", m.Groups(1).Index, m.Groups(1).Value) ' => 026
Console.WriteLine("index: {0}, match: {1}", m.Groups(2).Index, m.Groups(2).Value) ' => 123
Console.WriteLine("index: {0}, match: {1}", m.Groups(3).Index, m.Groups(3).Value) ' => 4567
正規表現で置換
Dim s1 As String = "<1>2<3>4"
Console.WriteLine(Regex.Replace(s1, "<(\d)>", "{$1}")) ' => {1}2{3}4