Avatar billede vante Nybegynder
07. marts 2006 - 11:01 Der er 6 kommentarer og
1 løsning

HJÆLP fra string to int array

Hej eksperten, jeg har et problem som jeg håber i kan hjælpe med.

Jeg får en en string fra en anden klasse, som kunne se ud som følgende: "1 7 8 6 4".

Denne string skal jeg have lavet om til et int array. Sådan så første plads i array hedder 1 det næste hedder 7 osv.

Håber i kan hjælpe!!

Mvh
Vante
Avatar billede kalp Novice
07. marts 2006 - 11:10 #1
package mypackage;
import java.util.StringTokenizer;

public class Class1
{
  public Class1()
  {
  String tekst = "1 7 8 6 4";
  int[] list = new int[5];
  int taller = 0;
  StringTokenizer tokens = new StringTokenizer(tekst," ");
  while(tokens.hasMoreTokens())
  {
    list[taller] = Integer.parseInt(tokens.nextToken());
    taller++;
  }
 
  for (int i = 0; i < list.length; i++)
  {
    System.out.println(list[i]);
  }
 
  }

  /**
  *
  * @param args
  */
  public static void main(String[] args)
  {
    Class1 class1 = new Class1();
  }
}
Avatar billede kalp Novice
07. marts 2006 - 11:10 #2
Det kan gøre smartere... men det er mit forslag:)
Avatar billede vante Nybegynder
07. marts 2006 - 11:15 #3
hmmm okay, kunne man ikke istedet for at lave det der med Stringtokenizer, kunne man ikke bare bruge et char array? den ville da gøre det samme med hensyn til at dele stringen op??
Avatar billede _carsten Nybegynder
07. marts 2006 - 11:39 #4
Du skal bruge split i stedet for StringTokenizer

        String s = "1 2 3 4 5 6";
        String[] c = s.split(" ");
       
        for (int i = 0; i < c.length; i++) {
            System.out.println("" + c[i]);
        }
Avatar billede simonvalter Praktikant
07. marts 2006 - 12:33 #5
string -> char array -> int array som du efterspørger

virker kun med tallene 0-9 og der skal tages højde for at jeg stop op igår så den er på eget ansvar ;)

        String test = "1 4 6 8";
        char array[] = test.toCharArray();
        int result[] = new int[(array.length / 2) + 1];
        int next = 0;
        for (char c : array) {
            if (!Character.isSpaceChar(c)) {
                result[next] = ((int) c - 48);
                next++;
            }
        }
Avatar billede vante Nybegynder
07. marts 2006 - 12:56 #6
Jeg prøvede Carstens forslag og det virket perfekt. Så Carsten vil du ikke lige smide et svar så du kan få nogle point.
Avatar billede _carsten Nybegynder
07. marts 2006 - 14:36 #7
Kommer her
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