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