将第二个输入语句添加到代码后出错 [关闭]
Posted
技术标签:
【中文标题】将第二个输入语句添加到代码后出错 [关闭]【英文标题】:Error after adding second input statement to code [closed] 【发布时间】:2020-07-08 04:41:21 【问题描述】:code_1
Scanner input = new Scanner(System.in);
System.out.println("Enter Name : ");
String name = input.nextLine();
System.out.println("String name : " + name);
System.out.println("Enter age : ");
int age = input.nextInt();
code_2
在这里,我尝试同时获取姓名和年龄。此代码采用名称,在我输入名称后,它会打印错误并且不询问年龄...
System.out.println("Enter Name and age : ");
String name = input.nextLine();
int age = input.nextInt();//error may be over here
System.out.println("String name : " + name);
System.out.println("String name : " + age);
【问题讨论】:
看起来不错,您提供的输入方式和输入方式是什么 打印什么错误? 欢迎来到 SO!如果您能准确地告诉我们您遇到了什么错误,这也会对我们有所帮助。 凯文打败了我,哈哈 【参考方案1】:问题是 nextLine 正在读取所有内容,因此 nextInt 没有可读取的内容。你想做的是。
1.读取输入
2.被某物分割(例如空格)
3.手动解析文本。
public static void main(String[] args)
// Try-with-resources so its closes the scanner.
try (Scanner input = new Scanner(System.in);)
System.out.println("Enter Name and age : ");
// Read input, split by spaces.
String[] text = input.nextLine().split(" ");
String name = "";
// Read the values, but not the last one.
for (int i = 0; i < text.length - 1; i++)
name += text[i] + " ";
try
// Take the last one and convert it to int.
int age = Integer.parseInt(text[text.length - 1]);
// Print if everything was ok.
System.out.println("String name : " + name);
System.out.println("String name : " + age);
catch (NumberFormatException e)
// The last field was not a number.
System.err.println("Age has to be a number");
// No catch propagate the exception.
【讨论】:
以上是关于将第二个输入语句添加到代码后出错 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
正确地将第二个动态模板添加到 Gatsby/NetlifyCMS - 我哪里出错了?
如何将第二个viewcontroller文本字段值传递给第一个viewcontroller数组并在swift4中点击按钮时关闭