2016-12-11 16 views
-1

私はjavaの初心者です。文字列内の2番目の単語を検索するために、この演習を行っていました。例えば、文字列が "I love java" "愛"。文字列の2番目の単語を検索する

は、ここに私のコードです:

import java.util.*; 

// This program returns the second word of a string 
public class SecondWord{ 
    public static void main(String[]args){ 
     Scanner in = new Scanner(System.in); 
     System.out.println("String: "); 
     String x = in.nextLine(); 
     int pos = x.indexOf(" "); 
     int pos1 = x.indexOf(" ", pos); 
     String second = x.substring(pos, pos1); 
     System.out.println(second); 
    } 
} 

それはコンパイルが、それは何も返しません。どうしましたか?

+1

'pos == pos1'です。あなたは '+ 1'を失っています。 – Siguza

+0

あなたが自由に選択できるならば、 – Yazan

+0

の代わりに 'split()'を使うことができます。最も簡単な方法はsplit( "")を使い、次に索引で何をするかを取得した配列にアクセスすることです。 – RohitS

答えて

3

" "の次のインデックスを取得するときは、最後のインデックスで1を増やす必要があります。

変更この

int pos1 = x.indexOf(" ", pos); 

int pos1 = x.indexOf(" ", pos+1); 

に注意

それを開始するか、trimに余分なスペースを削除するには、サブストリングを取るときは、1で位置を増やす必要があります。

String second = x.substring(pos+1, pos1); 

代替ソリューション

一つの良い方法は

String x = in.nextLine(); 
System.out.println(x.split(" ")[1]); 

" "で文字列を分割し、第二の要素を印刷と同じことをやってであろう。

+0

2つの文字列のみを入力します。 – grant

関連する問題