2012-10-07 138 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); 

    } 

} 

执行它,你将得到你的答案。