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();
}
}
输出:
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)
lease帮助我找到解决方案。
我希望输入数据存储为整数,以便在程序中进一步使用。
答案 0 :(得分:1)
当您拨打nextInt()
时,如果您第二次拨打电话,它将会错过输入。首先将其存储在num
中,然后使用num
变量进行打印。也可以使用nextInt()
代替nextLine()
。
您可以按照以下方式进行更改:
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
祝你好运。
答案 1 :(得分:0)
如果您删除System.out.println("you entered " + bucky.nextLine());
,并且两次调用bucky.nextLine()
,那么这将是您想要的,因此您必须输入两次参数。
答案 2 :(得分:0)
这里的问题是你拨打bucky.nextLine()
两次,首先是打印时,然后当你尝试进行转换时,你需要知道每次写bucky.nextLine()
计算机都在等待对于输入。解决方案?,首先将其存储在一个变量中,如 STaefi 表示。
顺便说一下,如果你想把输入存储为整数数据,而不是nextLine()
方法,试试nextInt()
这是一个专注于整数的方法。
我希望你理解,抱歉我的英语。
答案 3 :(得分:0)
试试这个,我想这就是你要求的......快乐编码=]
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();