webForumDet fria alternativet

"new StringTokenizer"-fel

Java

12 svar · 292 visningar · startad av pettsson

Medlem sedan jan. 20021 122 inlägg
Frågan#1

Varför kan jag inte göra en StringTokenizer? Om jag skriver st. får jag upp en lista med de metoder som StringTokenizer har, men den verkar inte vilja svälja konstruktorn av nån anledning. jag har importerat både java.io.* och java.util.*, tror inte jag behöver importera några fler eller?

      String Personer;

      PrintAllPersons(2);

      try {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

        System.out.println(
            "Vilka persondata vill du jämföra? (kommaseparerade) ");
        Personer = in.readLine();

        StringTokenizer st = new StringTokenizer(Personer, ',');
 /*
"Lab1.java": cannot resolve symbol: constructor StringTokenizer (java.lang.String,char)in class java.util.StringTokenizer at line 65, column 30
*/

      }
      catch (IOException i) {
        System.out.println(i);
      }
Medlem sedan okt. 2000149 inlägg
#2

Ändra ',' till "," så bör det fungera. Du skall ange en sträng och inte en char.

Medlem sedan jan. 20021 122 inlägg
#3

Nämen ser man på :e Trodde att man skulle ange en char som agerar separator. Tack så mycket :bire

Medlem sedan jan. 20021 122 inlägg
#4

Följdfråga: Om jag tokeniserar en sträng, hur kan jag då komma åt de tokens jag skapat?

Medlem sedan mars 20007 896 inlägg
#5
java.util.StringTokenizer stringTokenizer = new java.util.StringTokenizer( "Text,med,komma", "," );

while( stringTokenizer.hasMoreTokens() )
     System.out.println( "Nuvarande token: " + stringTokenizer.nextToken() );
Medlem sedan jan. 20021 122 inlägg
#6

Jag tänkte om man kunde göra nåt åt

StringTokenizer st = new StringTokenizer(Sträng, ",");
String test = st[TokenIndex];

detta håll kanske? Denna metod funkar inte, men det finns kanske nåt liknande?

Medlem sedan aug. 20021 752 inlägg
#7

Javas API dokumentation är mycket bra för att snabbt få en överblick över hur en funktion ska användas, http://java.sun.com/j2se/1.4.2/docs/api/index.html.

/Viktor

Medlem sedan okt. 2000149 inlägg
#8

Nej, du får anropa metoden next() för att få ut en ny token.
Exempelvis genom en while-loop.

Medlem sedan mars 20007 896 inlägg
#9

Som Viktor säger så är det här en typisk RTFM-fråga, men du kan inte plocka ut en sträng på ett angivet index från en StringTokenizer, du får i så fall lägga det i en array manuellt:

StringTokenizer st = new StringTokenizer( "text,med,komma", "," );
String[] arr = new String[ st.countTokens() ];
int i = 0;

while( st.hasMoreTokens() )
     arr[ i++ ] = st.nextToken();

System.out.println( arr[ 1 ] );
Medlem sedan mars 20034 471 inlägg
#10

RTFM??? :q :x Förklara, tack!

Medlem sedan juni 2003372 inlägg
#11

aasah skrev:

RTFM??? :q :x Förklara, tack!

När nån säger RTFM så betyder det i princip att man kan ganska lätt läsa sig till hur man ska göra.

För ytterliggare läsning http://www.readthefuckingmanual.com/ :e

Medlem sedan mars 20007 896 inlägg
#12

Read The Fine Manual. :p

Medlem sedan mars 20034 471 inlägg
#13

Tack Aleph_One och SPiN! :)

264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)