文字列操作メソッド [VB.NET]

Visual Basic.NET ADO.NETデータベースプログラミング

Stringクラスのメソッド

Stringクラスには、文字列操作のためのメソッドが数多く用意されています。

文字列操作

String.Copy(コピーする文字列)

文字列の複写をするメソッドです。Copyメソッドは共有メソッドなので、クラス名.メソッドで呼び出すことができます。

  ' 共有メソッドCopy:文字列を複写
  Dim str1, str2 As String

  str1 = "1234567"
  str2 = String.Copy(str1)    ' str2 = "1234567"

String.Compare(比較する文字列1, 比較する文字列2)

文字列を比較する共有メソッドです。

返値が正整数の場合:文字列1の方が文字列2より大きい

返値が負整数の場合:文字列1の方が文字列2より小きい

返値が 0の場合:文字列1と文字列2が同じ

  ' 共有メソッドCompare:文字列を比較
  Dim str1, str2 As String
  Dim ret As Integer

  str1 = "あいうえお"
  str2 = "12345"
  ret = String.Compare(str1, str2)   ' ret = 正整数

文字列.Substring(文字列の開始位置, 取得する文字数)

第1引数の検索開始位置から第2引数の文字数を取得するメソッドです。 第2引数を指定しないと、開始位置以降のすべての文字列を取得できます。

  ' 検索開始位置から指定文字数の文字列を取得
  Dim str1, str2 As String

  str1 = "abcdefg"
  str2 = str1.Substring(1, 3)   ' str2 = "bcd"

  ' 検索開始位置以降の文字列を取得
  str2 = str1.Substring(2)      ' str2 = "cdefg"

文字列.IndexOf(検索する文字列)

引数に指定した文字列が最初に見つかった位置を返すメソッドです。

引数の文字列が見つかった時:文字列の最初のインデックス位置(インデックスは0~)

引数の文字列が見つからなかった時:負の整数

引数が""の時:0

  ' 指定した文字列が最初に見つかった位置を返す
  Dim str1 As String = "abcdefg"
  Dim retIndex As Integer = 0

  retIndex = str1.IndexOf("cdef")     ' retIndex = 2

その他のStringクラスメソッド

その他よく使うメソッドをサンプルで紹介します。

  Dim str1, str2, str3 As String

  ' 共有メソッド:複数の文字列を連結
  str1 = "1"
  str2 = "ニニ"
  str3 = "333"
  str3 = String.Concat(str1, str2, str3) ' str3 = "1ニニ333"

  ' 文字列の前後の空白を削除
  str1 = "  ABC   "
  str2 = str1.Trim            ' str2 = "ABC"

  ' 文字列の前後の指定文字を削除
  str1 = "---あいう---"
  str2 = str1.Trim("-"c)      ' str2 = "あいう"

  ' 先頭の空白を削除
  str1 = "  ABC   "
  str2 = str1.TrimStart       ' str2 = "ABC   "

  '末尾の空白を削除
  str2 = str1.TrimEnd         ' str2 = "  ABC"

  ' 指定した文字数になるまで、指定文字を先頭文字の前に埋め込む
  str1 = "アイウエオ"
  str2 = str1.PadLeft(10, "a"c)   ' str2="aaaaaアイウエオ"

  ' 指定した文字数になるまで、空白を先頭文字の前に埋め込む
  str2 = str1.PadLeft(10)         ' str2="     アイウエオ"

  ' 指定した文字数になるまで、指定文字を末尾文字の後に埋め込む
  str2 = str1.PadRight(10, "a"c)  ' str2="アイウエオaaaaa"

  ' 指定した文字数になるまで、空白を末尾文字の後に埋め込む
  str2 = str1.PadRight(10)        ' str2="アイウエオ     "

  ' 指定位置から指定の文字数分削除
  str1 = "アイウエオ???"
  str2 = str1.Remove(5, 3)        ' str2 = "アイウエオ"

  ' 出現する指定文字列をすべて削除
  str1 = "東京---名古屋---大阪"
  str2 = str1.Replace("---", "")   'str2 = "東京名古屋大阪"

  ' 出現する指定文字列をすべて別の指定文字列に置換
  ' str2 = "東京<-->名古屋<-->大阪"
  str2 = str1.Replace("---", "<-->")

  ' 出現する指定文字をすべて別の指定文字に置換
  str1 = """AbAbAb"
    str2 = str1.Replace("A", "a")   ' str2 = "ababab"

  '指定位置から、指定文字列を挿入
  str1 = "東京は首都です。"
  ' str2 = "東京は日本の首都です。"
  str2 = str1.Insert(3, "日本の")

  ' 共有メソッド:配列の各要素間に区切り記号を挿入して連結
  Dim array() As String = {"東京", "名古屋", "大阪", "神戸"}
  ' str1 = "東京--名古屋--大阪--神戸"
  str1 = String.Join("--", array)

  ' 共有メソッド:最初の配列要素と、連結する要素数
  ' 各要素間に区切り記号を挿入して文字列配列を連結
  ' str1 = "名古屋--大阪--神戸"
  str1 = String.Join("--", array, 1, 3)

  ' 区切文字で部分文字列を識別し部分文字列を配列に格納
  Dim Ary(2) As String
  str1 = "東京, 名古屋, 大阪"
  ' ary(0)="東京" ary(1)="名古屋" ary(2)="大阪"
Ary = str1.Split(""","c) ' 大文字変換 str1 = "abc" str2 = str1.ToUpper ' str2 = "ABC" ' 小文字変換 str1 = "ABC" str2 = str1.ToLower ' str2 = "abc"