在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)
这是我用来做的代码(拼凑在一起,它是一个更大的程序的一部分):
System.out.println("Enter first number");
Scanner sc=new Scanner(System.in);
String name=sc.next();
int result = Integer.valueOf(name);
if (result / 2 == 1){
System.out.println("a");
该程序的目的是解码加密的消息。输入是数字,如果我将字符串删除到int转换器,该除法不起作用。我该如何解决这个问题?
答案 0 :(得分:0)
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而不是Integer对象
答案 1 :(得分:0)
如果您的输入是数字,最好直接使用方法
sc.nextInt();
答案 2 :(得分:0)
在您的堆栈跟踪中,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");
}
}
答案 3 :(得分:0)
尝试
System.out.println("Enter first number");
Scanner sc=new Scanner(System.in);
int name=sc.nextInt();
if ((name / 2) == 1)
System.out.println("a");
生成强>
run:
Enter first number
2
a
答案 4 :(得分:0)
试试此代码
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();
}
}