Avatar billede hyperactive Nybegynder
27. august 2003 - 15:36 Der er 6 kommentarer og
1 løsning

Fylde 2 dimensionel Array med værdier fra kommasepareret streng

Hvis nu jeg har en tekststreng som ser sådan ud:

"1,Tekst1,2,Tekst2,3,Tekst3"

Hvordan kan jeg så konvertere denne til en 2-dimensionel array som danner parrene 1 - Tekst1, 2 - Tekst2, 3 - Tekst3???
Avatar billede x4all_dk Nybegynder
27. august 2003 - 15:48 #1
Lige et kort svar:

Brug en string-tokenizer og så tager du blot element efter element og smider ind i dit 2dim array. Tokenizeren skal så sepererer efter ','.
Avatar billede hyperactive Nybegynder
27. august 2003 - 15:52 #2
Den forstod jeg ikke
Avatar billede arne_v Ekspert
27. august 2003 - 18:38 #3
Så vidt keg kan forstå kommer .NET ikke med en StringTokenizer.

Men der er noget kode her:

http://www.c-sharpcorner.com/Code/2003/June/JavaLikeStringTokenizer.asp
Avatar billede arne_v Ekspert
27. august 2003 - 18:59 #4
Men man behøver vel heller ikke en StringTokenizer.

En almindelig Split bør kunne gøre det:

using System;

class MainClass
{
    public static void Main(string[] args)
    {
        string s1 = "1,Tekst1,2,Tekst2,3,Tekst3";
        string[] s2 = s1.Split(',');
        string[,] s3 = new string[3,2];
        for(int i = 0; i < 3; i++)
            for(int j = 0; j < 2; j++)
                s3[i,j] = s2[2*i+j];
        for(int i = 0; i < 3; i++)
            for(int j = 0; j < 2; j++)
              Console.WriteLine(s3[i,j]);
    }
}
Avatar billede hyperactive Nybegynder
27. august 2003 - 19:03 #5
arne... Bruger VB
Avatar billede arne_v Ekspert
27. august 2003 - 19:07 #6
Sorry - jeg programmer ikke i VB.NET, men jeg vil formode at du kan
lave præcis det samme i VB.NET - syntaxen er bare lidt anderledes.
Avatar billede arne_v Ekspert
27. august 2003 - 20:01 #7
Well - what the heck.

Jeg kommer sikkert til at lære noget VB.NET på et tidspunkt alligevel.

Følgende kører:

Imports System
Module Main
    Sub Main()
        Dim s1 as String
        s1 = "1,Tekst1,2,Tekst2,3,Tekst3"
        Dim s2() as String
        s2 = s1.Split(",")
        Dim s3(3,2) as String
        Dim i,j As Integer
        For i = 1 to 3
            for j = 1 to 2
                s3(i,j) = s2(2*(i-1)+j-1)
            Next
        Next
        For i = 1 to 3
            for j = 1 to 2
              Console.WriteLine(s3(i,j))
            Next
        Next
    End Sub
End Module
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester