如何在VB中将字符串拆分成字母对?
例如:abcdefgh
分成:ab cd ef gh
答案 0 :(得分:8)
我会把帽子戴在戒指上:
Dim test As String = "abcdefgh"
Dim results As New List(Of String)
For i As Integer = 0 To test.Length - 1 Step 2
If i + 1 < test.Length Then
results.Add(test.Substring(i, 2))
Else
results.Add(test.Substring(i))
End If
Next
MessageBox.Show(String.Join(" ", results.ToArray))
答案 1 :(得分:3)
以下允许奇数长度的字符串。如果字符串为零长度,我不确定你想做什么,你会想要解决这个问题。
Dim src As String = "abcdef"
Dim size As Integer
If src.Length > 0 Then
If src.Length Mod 2 = 0 Then
size = (src.Length / 2) - 1
Else
size = ((src.Length + 1) / 2) - 1
End If
Dim result(size) As String
For i = 0 To src.Length - 1 Step 2
If i = src.Length - 1 Then
result(i / 2) = src.Substring(i, 1)
Else
result(i / 2) = src.Substring(i, 2)
End If
Next
End If
答案 2 :(得分:2)
在C#中你会这样做:
Dictionary<String, String> Split(String input)
{
if (input.Count % 2 == 0)
{
Dictionary<string, string> Pairs = new Dictionary( );
for (int L = 0, R = 1; L < input.Count && R <= input.Count; ++L, ++R)
{
Char
Left = input[L],
Right = input[R];
Pairs.Add(
Left.ToString(),
Right.ToString());
}
}
else
{
throw new NotEvenException( );
}
return Pairs( );
}
void Main()
{
var Pairs = Split("ABCDEFGH");
foreach(string Key in Split("ABCDEFGH"))
{
Console.Write("{0}{1}\n", Key, Pairs[Key]);
}
}
/*
Output:
AB
CD
EF
GH
*/
现在,我知道你的想法:这不是我想要的!但我说:实际上,至少部分是这样。
由于我认为您在VB.net中工作,因此上面的简短代码段中概述了您要执行的内容的基本结构。
例如:方法Count(对象String)存在于C#和VB中。
希望它至少有点帮助!