2017-05-09 7 views
0

私はJavaの初心者ですので、お返事が簡単すぎるとお詫び申し上げますが、まだ少し助けてくれることを願っています。ScannerでIndexOfを使用するにはどうすればよいですか?

私はScannerと入力して文章を書いてみたかったのですが、 その後、ユーザーはその文から単語を選択します。 そして、string.indexof("")で、プログラムはその単語がその文で始まる番号を数えます。 しかし、結果は常に-1です。そして、なぜ私は理解していない。

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

ありがとうございましたユーザーの後、コンソールで「Y」と「A = sc2.next()」の値は、それらを入力した印刷してみてください、そして私たちに出力 –

答えて

1

しかし、結果は常に-1です。そして、なぜ私は理解していない。

-1が返される唯一のシナリオは、指定されたStringが存在しない場合です。

Scanner#next()は、スペースの前に来るものだけを返します。スペースを無視した後は何も意味しません。 Scanner#next()ではなく、文全体を格納するためにScanner#nextLineを使用する必要があるようです。

y = sc.nextLine(); 
+1

を与え、それが働いた:) –

関連する問題