Java 从控制台接收数据并将其以字符串形式存储到不同数据类型的变量
输出:Java 从控制台接收数据并将其以字符串形式存储到不同数据类型的变量,java,error-handling,console,Java,Error Handling,Console,输出: package yo; import java.util.Scanner; public class ko { public static void main(String args[]) { int num; Scanner bucky = new Scanner(System. in ); //accepting data System.out.println("enter a number"); System.
package yo;
import java.util.Scanner;
public class ko {
public static void main(String args[]) {
int num;
Scanner bucky = new Scanner(System. in ); //accepting data
System.out.println("enter a number");
System.out.println("you entered " + bucky.nextLine()); //printing data
num = Integer.parseInt(bucky.nextLine());
System.out.println(num);
bucky.close();
}
}
请帮我找到解决办法
我希望输入数据存储为整数,以便在程序中进一步使用。当您调用
nextInt()
时,当您第二次调用它时,它将丢失输入。首先将其存储在num
中,然后使用num
变量打印它。也可以使用nextLine()
而不是nextLine()
您可以按如下方式进行更改:
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at yo.ko.main(ko.java:13)
祝你好运。如果你深入挖掘
System.out.println(“你输入了”+bucky.nextLine()),这将是你想要的
,您调用了两次bucky.nextLine()
,因此必须输入两次参数。这里的问题是,您调用了两次bucky.nextLine()
,第一次是在打印时,第二次是在尝试进行转换时,您需要知道每次编写bucky.nextLine()
计算机正在等待输入。解决方案?,首先将其存储在一个变量中,如statefi所说
顺便说一下,如果要将输入存储为整数数据,请不要使用nextLine()
method,而应使用nextInt()
这是一种专注于整数的方法
我希望你能理解,对不起我的英语。试试这个,我想这就是你想要的……快乐编码=]
Scanner bucky = new Scanner(System. in ); //accepting data
System.out.println("enter a number");
num = bucky.nextInt();
System.out.println("you entered " + num); //printing data
Integer.parseInt(bucky.nextInt())代码>-不需要使用nextInt()
解析为整数。也赢了,;t compileit这是我错过的一个好观点@Amit.rk3。我用手机接电话,但我没有完全集中注意力。无论如何,谢谢你。
while(!bucky.hasNextInt()) {
bucky.next();
System.out.println("please enter an Integer");
}
int num = bucky.nextInt();
System.out.println("you entered " + num); //printing data
System.out.println(num);
bucky.close();