Back to Top

プログラムの覚書

Category: VB.NET

VB.NET

VB.NET 文字列のLeft・Right・Mid関数

Basicで昔からある文字列を取り出す関数です。VB.NETではStringsクラス内にあります。

またLeft、Rightなど名称的にFormなどコントールのLeftなどとかぶるので、使用するときStrings.Left()などクラス名から書く必要があります。

Left、Right、Midの関数は、文字数、文字位置の指定で文字列を取り出します。のでバイトの指定ではありません。

Dim str As String = "あいうえお"

'左から2文字取り出す
Dim a1 as string = Strings.Left(str, 2)

'右から2文字取り出す
Dim a2 as string = Strings.Right(str, 2)

'2文字目から3文字取り出す
Dim a3 as string = Strings.Mid(str, 2, 3)

※関数が無い場合は、Imports Microsoft.VisualBasicを追加します。

 

VB.NET 高速に文字列を処理する

VB.NETで文字列を連結したりする処理は、代入文等でオブジェクトが作成されるので処理時間がかかる、そこでStringBuilderクラスを使用して高速で文字列を処理することが出来ます。

通常の文字列処理とStringBuilderクラスを使用した速度を比較する

'通常の文字列の追加
Dim t1 As Integer = System.Environment.TickCount
Dim str1 As String = ""
For i As Integer = 0 To 300000
    str1 += "A"
Next
t1 = System.Environment.TickCount - t1
MessageBox.Show(t1.ToString() & "ミリ秒")
		
		
'StringBuilderでの文字列の追加
Dim t2 As Integer = System.Environment.TickCount
Dim sb As New System.Text.StringBuilder()
sb.Capacity = 3000000    'ある程度、使用するサイズが決まっている場合は指定しておくと若干速い
For i As Integer = 0 To 3000000
    sb.Append("A")
Next
Dim str2 As String = sb.ToString()
t2 = System.Environment.TickCount - t2
MessageBox.Show(t2.ToString() & "ミリ秒")

StringBuilderは追加以外に文字列の挿入Insert(, “”)・’文字列の置換・Replace(“”, “”)・’文字の削除Remove(,)の機能もあります。