忽略空间,空白

时间:2012-10-07 22:50:39

标签: java java.util.scanner

有谁知道我怎么能让扫描仪忽略空间?我想键入第一个和第二个名字,但扫描仪不会让我,我想保存全名

String name;

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

System.out.println(name);

编辑: 新问题..在我的扩展程序中使用nextLine时,nextLine只是忽略了整个问题并继续前进而没有机会扫描名称。

6 个答案:

答案 0 :(得分:3)

Scanner#next()在空格周围分割线条。 Scanner.nextLine()没有,因此留空间。

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

答案 1 :(得分:2)

使用scanner.nextLine()读取完整行,而不是scan.next();

示例:

name = scan.nextLine();

阅读Scanner类的oracle文档以获取可用的方法。

答案 2 :(得分:2)

Scanner.next使用空格分隔,读取您可以使用的完整行:

name = scan.nextLine(); 

答案 3 :(得分: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();

答案 4 :(得分:1)

听起来你想要读取整行(减去行结尾)。如果有人进入,“helen r.smith”,你可以阅读以下内容:

name = scan.nextLine();

答案 5 :(得分: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);

    }

}

执行它你会得到答案。