有谁知道我怎样才能让扫描仪忽略空间?我想输入名字和第二个名字,但扫描仪不让我输入,我想保存全名
String name;
System.out.print("Enter name: ");
name = scan.next(); //Ex: John Smith
System.out.println(name);
编辑:新问题.. 在我的扩展程序中使用 nextLine 时,nextLine 只是忽略了整个问题并继续前进,没有机会扫描名称。
有谁知道我怎样才能让扫描仪忽略空间?我想输入名字和第二个名字,但扫描仪不让我输入,我想保存全名
String name;
System.out.print("Enter name: ");
name = scan.next(); //Ex: John Smith
System.out.println(name);
编辑:新问题.. 在我的扩展程序中使用 nextLine 时,nextLine 只是忽略了整个问题并继续前进,没有机会扫描名称。
Scanner#next()
在空格周围分割线。 Scanner.nextLine()
没有,因此留下空格。
name = scan.nextLine(); //Ex: John Smith
使用scanner.nextLine()
which 读取整行,而不是scan.next();
例子:
name = scan.nextLine();
阅读Scanner类的 oracle 文档以获取可用方法。
Scanner.next
使用空格分隔,以读取整行,您可以使用:
name = scan.nextLine();
好吧,首先是您的 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();
听起来您想阅读整行(减去行尾)。如果有人输入“helen r. smith”,您可以读取该行:
name = scan.nextLine();
你可以这样做
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);
}
}
执行它你会得到你的答案。