2012-10-07 139 views
2

有誰知道我可以如何讓掃描器忽略空間?我想輸入一個第一名和第二名,但掃描儀不會讓我,我要保存的全名忽略空格,空格

String name; 

System.out.print("Enter name: "); 
name = scan.next(); //Ex: John Smith 

System.out.println(name); 

編輯: 新的問題。而在我的擴展程序中使用nextLine,nextLine只是忽略了整個問題並繼續前進,沒有機會掃描名稱。

+1

如果「輸入姓名」在另一個問題後出現,則可能需要再次調用nextLine兩次 - 一次超過先前的答案,再次閱讀下一個答案。 – jspcal

回答

3

Scanner#next()分裂周圍的空白行。 。Scanner.nextLine()沒有,因此留下空格

name = scan.nextLine(); //Ex: John Smith 
1

聽起來像你想讀整行(減去行結尾)。如果有人進入, 「海倫 - [R·史密斯」,你可以在閱讀符合:

name = scan.nextLine(); 
2

使用scanner.nextLine()其內容全系列,而不是scan.next();

例子:

name = scan.nextLine(); 

閱讀有關可用方法的Scanner類的oracle文檔。

2

Scanner.next劃使用空格,讀一個完整的行,你可以使用:

name = scan.nextLine(); 
2

嗯,首先是System.out.print你();電話有缺陷。這裏的一切都必須是內報價 System.out.print("Enter name: ");

scan.next()獲取流中的下一個字符,而scan.nextLine()獲取下一行(由EOL字符終止),這可能對你更有幫助。

之後,您可以創建一個單詞數組,例如 String[] broken = name.split(" "); 這會將您輸入的所有單詞分隔爲空格。

然後你可以像

for(int i = 0; i < broken.size; i++) 
{ 
    System.out.print(broken[i] + " "); 
} 
System.out.println(); 
+0

幫助,幫助,我被壓迫:( –

1

你可以這樣做

import java.util.*; 
class scanner2 
{ 
public static void main(String args[]) 
    { 
    Scanner in= new Scanner(System.in); 
    System.out.println("enter the name"); 
    String name= in.nextLine();//for name with spaces with more than one word or for one word. 

    System.out.println("enter single word"); 
    String rl= in.next();//single word name 

    System.out.println("name is "+name+" rl is "+rl); 

    } 

} 

執行它,你將得到你的答案。