みなさんこんにちは!
ひろぽんです!
そういえばVB.NETで右から何文字って感じで文字を取得するのってどうするんだっけ??って思っていろいろ調べたので記事にしようと思います!
目次
VB.netで右からの文字列を取得するには、Strings.Rightを使う
これ。私いろいろ勘違いしていました。
下記のようなコード(変数に値を入れてるだけ)があった場合、name.Rightで右からの文字を取得できると思ったんです。
Sub Main()
Dim name = "東京太郎"
End Sub
でもname.Rightというのはありません。
よくよく調べてみるとVB.netの場合、Stringsというモジュールが用意されており、これを使うことで、右から何文字って感じで文字を取得することができるみたいですね!
Sub Main()
Dim name = "東京太郎"
Dim getName = Strings.Right(name, 2)
Console.WriteLine(getName)
Console.ReadLine()
End Sub
Stringsモジュールには何がある?
ではVB.netにだけ用意されているStringsモジュールですが、他にどんな便利なメソッドがあるのか調べてみました!
独断と偏見で便利だなーと思ったメソッドを羅列していきます!
String.splitで文字を分ける
Sub Main()
Dim place = "東京,大阪,名古屋"
Dim places = Strings.Split(place, ",")
Console.WriteLine(places(0) & places(1) & places(2))
Console.Read()
End Sub
第1引数に分けたい文字列、第2引数に分ける文字を。これで戻り値がstringsの配列で分けて戻ってきます。
Strings.Joinで文字配列を1つの文字列にする
Sub Main()
Dim places As String() = {"東京", "大阪", "名古屋"}
Dim combineStr = Strings.Join(places)
Console.WriteLine(combineStr)
Console.Read()
End Sub
これを実行すると
Strings.InStrで文字列のどの部分に含まれているかを返す
Sub Main()
Dim name = "東京太郎"
Dim resultNum = Strings.InStr(name, "東京")
Console.WriteLine(resultNum)
Console.Read()
End Sub
これを実行すると
もし指定した文字列が存在しなかった場合、下記のようになります。
Sub Main()
Dim name = "東京太郎"
Dim resultNum = Strings.InStr(name, "大阪")
Console.WriteLine(resultNum)
Console.Read()
End Sub
なのでこれを応用すると下記のようなことができますね!
Sub Main()
Dim weather = "東京は今日はいい天気です"
Dim notContain = 0
If Strings.InStr(weather, "大阪").Equals(notContain) Then
Console.WriteLine("文字列に大阪は含まれていません")
Else
Console.WriteLine("文字列に大阪は含まれています。")
End If
Console.Read()
End Sub
文字列の存在チェックですが、書いていて思った。
これcontainsで出来ますね。
下記で代用できますね。
Sub Main()
Dim weather = "東京は今日はいい天気です"
If weather.Contains("大阪") Then
Console.WriteLine("文字列に大阪は含まれています。")
Else
Console.WriteLine("文字列に大阪は含まれていません")
End If
Console.Read()
End Sub
以上!
Vb.netだけに存在するStringsモジュールの話でした!
C#の場合同じ.netでもモジュールって考え方が無いので、別の方法で取得しなければいけません!
コメント