2016-04-14 6 views
-1

Wenn Sie einen String mit den Werten, die durch Kommas wie folgt getrennt werden:Wie erhält man einen Teil einer Zeichenkette gemäß der Position des Teils (int)?

String s = "zero, number one, two, three, number four, five"; 

Und Sie sind eine Zahl zwischen 0 und 5 wie folgt gegeben:

int i = 3; 

Dann, wie würden Sie erhalten die passende Wert, so dass die neue Zeichenfolge „drei“ wie folgt enthält:

String newString = "three"; 

das Verfahren für eine unbegrenzte Anzahl von r arbeiten sollte Andom Wörter in der Zeichenfolge.

Antwort

1

Wenn die Zeichenfolge enthält Kommas, können Sie diese Zeichenfolge durch Kommas in ein Array aufgeteilt. Jetzt können Sie die Nummer 3 als Index für Ihr Token-Array verwenden.

Zum Beispiel:

//s is your string as you mentioned above 
String [] tokenized=s.split(","); 
//i is your number 3 as you mentioned above 
System.out.println(tokenized[i]); 
+0

Perfekt, danke. –

+0

Siehe meinen Kommentar zu einer vorherigen Antwort, warum dies falsch ist. – FredK

+0

Ich habe deine Kommentare gesehen. Ich glaube nicht, dass es ein Problem gibt. Er kann einige Validierungsbedingungen erstellen. Nicht so ernstes Problem :) – user43053534

0

Sie können eine Funktion wie erstellen:

String getString(String data, int position) { 
    return data.split(",")[position]; 
} 

Und nennen Sie es wie,

String s = "zero, number one, two, three, number four, five"; 
String newString = getString(s, 3); 
+0

nicht mit dem Original-String des OP arbeiten. Erstens kann dieser Code nicht überprüfen, ob tatsächlich mindestens "Positionseinträge" vorhanden sind. Es wird eine Ausnahme ausgelöst, wenn nicht oder wenn der Benutzer eine negative Zahl eingibt. Zweitens ist der Regex, der an split() übergeben wurde, falsch. Wenn Sie "3" an die Funktion übergeben, wird "drei" zurückgegeben (beachten Sie das führende Leerzeichen), nicht "drei". – FredK

Verwandte Themen