3

のような文字列がありますs = "abcdefgh"。次のような文字数で分割したい:

a(0)="ab"
a(1)="cd"
a(2)="ef"
a(3)="gh"

誰かがこれを行う方法を教えてもらえますか?

4

4 に答える 4

2

正規表現を使用して、2 文字のグループに分割できます。

Dim parts = Regex.Matches(s, ".{2}").Cast(Of Match)().Select(Function(m) m.Value)

デモ: http://ideone.com/ZVL2a (C#)

于 2012-07-26T18:37:12.090 に答える
2

ループを記述する必要のない Linq メソッドを次に示します。

    Const splitLength As Integer = 2
    Dim a = Enumerable.Range(0, s.Length \ splitLength).
        Select(Function(i) s.Substring(i * splitLength, splitLength))
于 2012-07-26T18:50:43.310 に答える
1

2文字ごとに分割することは、あなたが望んでいたことだと思います

    Dim s As String = "aabbccdd"

    For i As Integer = 0 To s.Length - 1 Step 1
        If i Mod 2 = 0 Then
            Console.WriteLine(s.Substring(i, 2))
        End If
    Next
于 2012-07-26T18:29:25.317 に答える
0

代わりにa を使用するとList(Of String)、簡単になります。

Dim s = "aabbccdde" ' yes, it works also with an odd number of chars '
Dim len = 2
Dim list = New List(Of String)
For i = 0 To s.Length - 1 Step len
    Dim part = If(i + len > s.Length, s.Substring(i), s.Substring(i, len))
    list.Add(part)
Next
Dim result = list.ToArray() ' if you really need that array '
于 2012-07-26T19:30:38.990 に答える