Java 如何将扫描仪输入转换为整数?

Java 如何将扫描仪输入转换为整数?,java,int,java.util.scanner,Java,Int,Java.util.scanner,在Java中,如果可能,如何将数字扫描仪输入(如2或87)转换为整数变量?我现在使用的方法会产生错误消息: Exception in thread "main" java.lang.NumberFormatException: null at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.valueOf(Unknown Source) at diDecryption.Didecryp

在Java中,如果可能,如何将数字扫描仪输入(如2或87)转换为整数变量?我现在使用的方法会产生错误消息:

    Exception in thread "main" java.lang.NumberFormatException: null
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.valueOf(Unknown Source)
    at diDecryption.Didecryption.main(Didecryption.java:226)
这是我用来做这件事的代码(拼凑起来,它是一个更大程序的一部分):

该程序的目的是对加密消息进行解码。输入是数字的,如果我去掉字符串到int的转换器,除法就不起作用了。我该如何解决这个问题

System.out.println("Enter first number");
Scanner sc=new Scanner(System.in); 
String name=sc.next();
int result = Integer.parseInt(name);
if (result / 2 == 1){
System.out.println("a");

parseint将其更改为基本int而不是整数对象

如果您的输入是数字,最好直接使用该方法

sc.nextInt();

在堆栈跟踪中,
null
作为
Integer.valueOf(name)
中的参数。 您的控制台似乎产生了一些无效的输入序列。 尝试使用
sc.hasNext()
条件检查它:

    System.out.println("Enter first number");
    Scanner sc = new Scanner(System.in);
    if (sc.hasNext()) {
        String name = sc.next();
        int result = Integer.parseInt(name);
        if (result / 2 == 1) {
            System.out.println("a");
        }
    }
试一试

跑步

run:
Enter first number
2
a
试试这个代码

package exmaple;

import java.util.Scanner;

public class Parser {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String name = in.next();

        try{
            int result = Integer.parseInt(name);
            if(result / 2 == 1) {
                System.out.println("a");
            }

        } catch(Exception exception) {

        }
        in.close();
    }

}

这显然没有转化。但是我明白你的意思如果我给你一个数字你的代码对我来说很好。您在系统中提供了什么作为输入?(您发布的错误消息表明您正在尝试分析
null
)您的输入是什么?代码在我看来很好。我怀疑您的异常消息是否与您的代码匹配。扫描程序方法不返回
null
。如果没有可阅读的内容,他们将抛出异常。请提供一个。给出的步骤不会重现引用的问题。这不会有任何区别,Java非常乐意取消对
valueOf()返回的
Integer
的装箱。
run:
Enter first number
2
a
package exmaple;

import java.util.Scanner;

public class Parser {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String name = in.next();

        try{
            int result = Integer.parseInt(name);
            if(result / 2 == 1) {
                System.out.println("a");
            }

        } catch(Exception exception) {

        }
        in.close();
    }

}