2017-02-02 1 views
2

Zum Beispiel habe ich ve got Some string a.b.c.d`, ich habe es durch Token getrennt. aber jetzt möchte ich eine spezifische Sache mit a machen, dann etwas anderes mit b und etwas anderes mit c. Wie kann ich das machen?Tokenizer Java (String)

String value="a.b.c.d"; 
StringTokenizer tokenize = new StringTokenizer(value, "."); 
while(tokenize.hasMoreTokens()){ 
    String separated1= tokenize.?????; 
    String separated2= tokenize.?????;        
    String Val1 = someMethod1(separated1); 
    String Val2 = someMethod2(separated2); 
} 
//tokenize next line is not solution 
+2

Warum nicht String.split() verwenden? StringTokenizer ist eine Legacy-Klasse. – user3437460

+0

vielen Dank, ich werde versuchen mit String.split() – mica1234

+0

es hat mein Problem nicht gelöst, ich kann nur wählen, wie viele von ihnen möchte ich "ausdrucken", aber ich kann immer noch nicht wählen, welche. – mica1234

Antwort

0

Warum Split nicht verwenden? Einfacher zu verwenden und macht mehr Sinn hier

1

Mit String.split können Sie über die . in ein Array teilen.

Wie wäre es so etwas wie dieses, die jedes Zeichen gedruckt werden:

 String value = "a.b.c.d"; 
     String[] tokens = value.split("\\."); 
     for (String token : tokens) { 
      System.out.println(token); 
     } 

Die . Bedürfnisse entkommen sein, wie die split Funktion eine regexp nimmt und . ist ein Platzhalter

3

Genau das, was zu buchstabieren @ RealSkeptic bereits gesagt, die Schleife vermeiden:

String value = "a.b.c.d"; 
    String[] separated = value.split("\\."); 
    if (separated.length >= 2) { 
     String val1 = someMethod1(separated[0]); 
     String val2 = someMethod2(separated[1]); 
    } else { 
     // other processing here 
    } 

Sie etwas ähnliches mit einemtun könnteWenn Sie möchten, brauchen Sie nur mindestens zwei if-Anweisungen, um zu prüfen, ob genügend Token vorhanden sind. Aber wie @ user3437460 sagte, StringTokenizer ist jetzt Legacy; String.split() wird im neuen Code empfohlen.