有谁知道我怎么能让扫描仪忽略空间?我想键入第一个和第二个名字,但扫描仪不会让我,我想保存全名
String name;
System.out.print("Enter name: ");
name = scan.next(); //Ex: John Smith
System.out.println(name);
编辑: 新问题..在我的扩展程序中使用nextLine时,nextLine只是忽略了整个问题并继续前进而没有机会扫描名称。
答案 0 :(得分:3)
Scanner#next()
在空格周围分割线条。 Scanner.nextLine()
没有,因此留空间。
name = scan.nextLine(); //Ex: John Smith
答案 1 :(得分:2)
答案 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);
}
}
执行它你会得到答案。