Jak mógłbym podzielić łańcuch na pary liter w VB?Dzielenie łańcucha na pary
na przykład: abcdefgh
podzielone na: ab cd ef gh
Jak mógłbym podzielić łańcuch na pary liter w VB?Dzielenie łańcucha na pary
na przykład: abcdefgh
podzielone na: ab cd ef gh
Dorzucę mój kapelusz w ringu:
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))
W języku C# to zrobić tak:
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
*/
Teraz wiem, co myślisz: To nie jest czego chcę! Ale ja mówię: faktycznie jest, przynajmniej częściowo.
Ponieważ zakładam, że pracujesz w VB.net, podstawowa struktura tego, co chcesz wykonać, jest opisana w krótkim opisie powyżej.
Na przykład: Metoda Count (obiektu String) istnieje zarówno w C#, jak i VB.
Mam nadzieję, że przynajmniej trochę pomoże!
Pracowałem w VB w studiach wizualnych , ale dzięki temu pomógł nieco –
Dobra! Chociaż nie jestem do końca pewien (nigdy nie pracowałem w VB), ale myślę, że możesz po prostu przetłumaczyć moje małe słowo w słowo na VB, a mimo to być w stanie go skompilować! –
Następujące pozwala na nieparzyste ciągi długości. Jeśli ciąg ma zerową długość, nie jestem pewien, co chcesz zrobić, będziesz chciał zająć się tą sprawą.
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
dzięki za odpowiedź. Jestem nieco zdezorientowany z powodu kodu i nie mam pojęcia, co to jest XD –
LOL, co robi, to odpowiedź na twoje pytanie .... Testowałem kod. @ Odpowiedź LarsTecha jest prawie taka sama, ale używa listy zamiast tablicy, więc łatwiej jest ją przeczytać ... i zgadzam się, że jest lepiej. – minnow
Zakładamy VB.NET? – minnow