了解使用扫描仪读取字符串

时间:2016-09-02 08:25:54

标签: java

我想读取一个int,double和string并将每一个添加到变量中,但我无法读取该字符串。

int i = 4;
double d = 4.0;
String s = "My name is ";   
Scanner scan = new Scanner(System.in);
int i2 = scan.nextInt();
double d2 = scan.nextDouble();
String s2 = scan.nextLine();        
System.out.println(i+i2);
System.out.println(d+d2);
System.out.println(s + s2);
scan.close();

我的理解是scan.nextLine()读取一个字符串,但它只是跳过它。 scan.next()只读第一个单词。 如果我在scan.nextLine();之前添加String str2 = scan.nextLine();但我不知道为什么

,它会正常工作

1 个答案:

答案 0 :(得分:-1)

输入

 2.4
 "Some String"

当你使用nextDouble时,只选择2.4而不是EndOfLine(在2.4之后和"Some String"之前。)。 因此,您的代码使用2 nextLine()

您也可以使用

int i2 = Integer.parseInt(scan.nextLine());
double d2 = Double.parseDouble(scan.nextLine());
String str2 = scan.nextLine();