Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从控制台接收数据并将其以字符串形式存储到不同数据类型的变量_Java_Error Handling_Console - Fatal编程技术网

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();