2017-09-25 191 views
0

我在下面的代码中遇到问题,请看看它,并帮助我解决我的问题。 的代码是:扫描仪类Java

import java.util.*; 
public class Test1{ 
    public static void main(String ...args){ 
    Scanner s1=new Scanner(System.in); 
    int age; 
    age= s1.nextInt(); 
    System.out.println(age); 
    System.out.println("Enter Name"); 
    String name; 
    s1.next(); 
    name = s1.nextLine(); 
    System.out.println(name); 
} 
} 

方案的输入:

12 
12 
Enter Name 
A B C 
B C 

预期输出:

12 
    12 
    Enter Name 
    A B C 
    A B C 

我试图扫描仪class.Please帮助我获得我的期望输出,并指定我的错误。请解释你的答案非常感谢。

+4

's1.next();'将丢弃第一个标记。 – Berger

+0

@Berger如果我删除s1.next();那么这是输出12 输入名称 程序,而不输入查询的(HTTPS [扫描仪使用后的next(),nextInt()或其他nextFoo()跳过nextLine()?]名称 –

+0

可能的复制得到了终止:/ /stackoverflow.com/questions/13102045/scanner-is-skipping-nextline-after-using-next-nextint-or-other-nextfoo) – AxelH

回答

1
import java.util.*; 

public class Test1 
{ 
    public static void main(String ...args){ 
    Scanner s1=new Scanner(System.in); 
    int age; 
    age= s1.nextInt(); 
    System.out.println(age); 
    System.out.println("Enter Name"); 
    s1.nextLine(); 
    String name = s1.nextLine(); 
    System.out.println(name); 
    } 
} 

这应该起作用。

sc.next() uses <space> as a delimiter by default. 
+0

谢谢你@Gaurang它工作 –

+0

高兴地帮助:) –