2017-05-09 2 views
0

Ich bin ein Anfänger in Java, also entschuldige ich mich, wenn dir das zu einfach erscheint, um zu antworten, trotzdem hoffe ich, dass ich von hier ein wenig Hilfe bekomme.Wie kann ich IndexOf mit Scanner verwenden?

Ich wollte eine Eingabe vom Benutzer mit Scanner bekommen, einen Satz schreiben. Dann würde der Benutzer ein Wort aus diesem Satz auswählen. Und dann mit string.indexof(""), sollte das Programm zählen von welcher Nummer das Wort in diesem Satz beginnt. Aber das Ergebnis ist immer -1. Und ich verstehe nicht warum.

String a,b; 

Scanner sc= new Scanner(System.in); 
System.out.println("Please write a sentence"); 
y=sc.next(); 

Scanner sc2 = new Scanner(System.in); 
System.out.println("Please pick a word from that sentence"); 

System.out.println("The word starts from=" + (y.indexOf(a=sc2.next()))); 
+0

versuchen, die Werte von „y“ Druck und „a = sc2.next()“ in der Konsole, nachdem der Benutzer sie eingegeben hat, und uns dann gibt die Ausgabe –

Antwort

1

Aber das Ergebnis ist immer -1. Und ich verstehe nicht warum.

Das einzige Szenario, in dem -1 zurückgegeben werden, wenn es keine solche Vorkommen des angegebenen String ist.

Scanner#next() gibt nur zurück, was vor einem Leerzeichen steht, was alles bedeutet, nachdem Leerzeichen ignoriert wurde. Es scheint, dass Sie die Scanner#nextLine verwenden müssen, um den gesamten Satz statt Scanner#next() zu speichern.

z.B.

y = sc.nextLine(); 
+1

Sie dankt so viel, es funktionierte :) –

Verwandte Themen