2016-12-11 76 views
-1

我是一個java中的新手,我正在做這個練習,要搜索字符串中的第二個單詞,例如,如果字符串是「我愛java」程序應該返回「愛」。搜索字符串中的第二個字

這裏是我的代碼:

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

如果你可以自由選擇,你可以使用'split()'而不是 – Yazan

+0

最簡單的方法是使用split(「」),然後在獲取的數組中訪問你使用索引 – RohitS

回答

3

當你得到" "的下一個索引時,你應該在最後一個索引中增加1。

更改此

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

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

注意

你應該服用1的子在啓動或trim它刪除多餘的空間時,增加的位置。

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

替代的解決方案

一種更好的方式是通過" "做同樣的事情

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

分割字符串並打印第二個元素。

+0

這個解決方案當你只輸入2個字符串。 – grant