2011-11-15 11 views

Odpowiedz

7

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)) 
+0

tak działa! dzięki za pomoc teraz mam do pracy nad resztą projektu! –

+0

+1 Dla odpowiedzi ... a także dla oznaczania pytań VB.net! – MarkJ

+0

@minnow Dzięki. Tak, Długość byłaby lepsza niż Count. Ach, złe nawyki. – LarsTech

2

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!

+0

Pracowałem w VB w studiach wizualnych , ale dzięki temu pomógł nieco –

+0

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ć! –

3

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 
+0

dzięki za odpowiedź. Jestem nieco zdezorientowany z powodu kodu i nie mam pojęcia, co to jest XD –

+0

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

Powiązane problemy