2014-10-07 208 views
-1

我正在嘗試將文字翻譯成明膠,這裏是目前爲止的代碼。這爲什麼不打印多次?

import java.util.*; 

public class Start { 

    static Scanner in = new Scanner(System.in); 

    public static void main(String args[]){ 

     String input; 

     System.out.println("What is your phrase?"); 
     input = in.next(); 
     convert(input); 


    }//end main 

    public static void convert(String in){ 

     String out; 
     String[] inArry = in.split(" "); 

     for(int i = 0; i < inArry.length; i++){ 

      System.out.println(inArry[i]); 

     } 


    }//end convert 

} 

如果我在控制檯「Hello world」中輸入它只會打印出Hello。我不知道爲什麼。

回答

6

Scanner中的next()方法返回下一個標記,由缺省爲空白的定界符進行標記。

掃描程序使用定界符模式將其輸入分爲標記,默認情況下該定界符與空白匹配。然後可以使用各種下一個方法將產生的令牌轉換爲不同類型的值。

所以input只是"Hello"。使用nextLine()方法代替整行。

input = in.nextLine(); 
+0

沒有太大的意義,但它的工作表示感謝。我只是懶惰,沒有把線位。 – user3730975 2014-10-07 23:10:24

+0

@ user3730975基本上它意味着「'下一個()'將您的輸入單詞,並返回一個字」。這不是_exactly_它是如何工作的,但希望已經足夠接近您的理解。 – ajb 2014-10-07 23:15:45