2016-04-06 11 views
-8

Ich versuche, einen Zeichenindex in einem String zu erhalten. Zum Beispiel möchte ich den ersten "a" Index im "dablesink" Wort erhalten (der Index wird 1 sein).So erhalten Sie einen Zeichenindex in einer Zeichenfolge

Also, ich möchte einen Code, der das Wort analysieren und das erste Zeichen zurückgibt, um in einem Wort zu suchen.

Danke für die Antwort!

+6

Bitte mehr ** spezifische **. Der Buchstabe 'a' in was' String'? Was hast du probiert? –

+0

Ok, @EliottFrisch Ich bearbeite die Antwort. –

+3

Es ist immer noch nicht klar. Sie können einfach 'charAt' verwenden, aber ... welches Problem versuchen Sie eigentlich zu lösen? Das erste 'a' bekommen? * Irgendein * 'a' bekommen? Den zweiten Charakter bekommen? Etc. –

Antwort

1

index wird -1 sein, wenn 'a' nicht in dieser Zeichenfolge ist.

Beachten Sie, dass dieser Code nur das erste 'a' in dieser Zeichenfolge findet. Wenn Sie mehrere Stellen eines Zeichens finden müssen, durchlaufen Sie die Zeichenkette mithilfe der Lösung in einer anderen Antwort.

String str = "there is a letter"; 

int index = str.indexOf('a'); 
+0

Danke, ich habe es gelöst! –

2

Sie können durch die Zeichenfolge iterieren und nach einem gesuchten Zeichen suchen.

Verwenden Sie einfach eine for-Schleife wie folgt aus:

String test = "I want to test something"; 
for(int i=0;i<test.length;i++) { 
    char t = test.charAt(i); 
    // do something with char 
} 

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#charAt%28int%29

+0

Ok, danke !! –

+2

'indexOf()' wäre einfacher. – Andreas

+0

@Andreas Ihre Lösung findet nur ein Zeichen von a. Ich habe einen allgemeinen Ansatz angewendet, wenn jemand mehr tun möchte, als nur zu vergleichen. Natürlich können Sie mit 'indexOf' gehen, aber der Nachteil besteht darin, nur einen Wert zu erhalten. Wenn Sie mehrere "a" -Zeichen haben, müssen Sie jedes Mal, wenn Sie weiter schauen wollen, iterieren und indexOf ('a', startIndex) hinzufügen. –

Verwandte Themen