webForumDet fria alternativet

"new StringTokenizer"-fel

12 svar · 292 visningar · startad av pettsson

pettssonMedlem sedan jan. 2002777 inlägg
#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);
      }
neox83Medlem sedan okt. 2000153 inlägg
#2

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

pettssonMedlem sedan jan. 2002777 inlägg
#3

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

pettssonMedlem sedan jan. 2002777 inlägg
#4

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

SPiNMedlem sedan mars 20005 832 inlägg
#5
java.util.StringTokenizer stringTokenizer = new java.util.StringTokenizer( "Text,med,komma", "," );

while( stringTokenizer.hasMoreTokens() )
     System.out.println( "Nuvarande token: " + stringTokenizer.nextToken() );
pettssonMedlem sedan jan. 2002777 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?

ViktorMedlem sedan aug. 20021 710 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

neox83Medlem sedan okt. 2000153 inlägg
#8

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

SPiNMedlem sedan mars 20005 832 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 ] );
aasahMedlem sedan mars 20033 451 inlägg
#10

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

Aleph_OneMedlem sedan juni 2003370 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

SPiNMedlem sedan mars 20005 832 inlägg
#12

Read The Fine Manual. :p

aasahMedlem sedan mars 20033 451 inlägg
#13

Tack Aleph_One och SPiN! :)

Genererad på 374 ms · cache AV · v20260730165559-full.f96bc7eb