java菜鸟问题报错:Exception in thread "main" java.lang.NumberFormatExc...
发布网友
发布时间:2024-10-04 19:16
我来回答
共5个回答
热心网友
时间:2024-10-04 19:18
你可能输入了空格,而且在使用num.split()方法时没有去掉空格这样导致分成的数组里面依旧有空格,这样的话在使用integer去封包的时候是不行的,因为待格式化的String变量不符合条件。
解决办法:num.trim().split()。trim()函数是去掉字符串里面的空格功能。这样避免无意义的数据输入。
热心网友
时间:2024-10-04 19:13
import java.util.*;
public class Jisuanqi{
public static void main(String args[]){
System.out.println("请选择计算类型:1-加法;2-减法;3-乘法;4-除法");
Scanner reader=new Scanner(System.in);
reader.hasNextInt();
int Operator=reader.nextInt();
String Num;
switch(Operator){
case 1:
System.out.println("请输入算式:");
Scanner reader1=new Scanner(System.in);
Num=reader1.nextLine();
String[] Numa=Num.split("\\+");
int a1,a2;
a1=Integer.parseInt(Numa[0]);
a2=Integer.parseInt(Numa[1]);
int resultsa=a1+a2;
System.out.println("结果是:"+resultsa);
break;
case 2:
System.out.println("请输入算式:");
Scanner reader2=new Scanner(System.in);
Num=reader2.nextLine();
String[] Numb=Num.split("-");
int b1,b2;
b1=Integer.parseInt(Numb[0]);
b2=Integer.parseInt(Numb[1]);
int resultsb=b1-b2;
System.out.println("结果是:"+resultsb);
break;
case 3:
System.out.println("请输入算式:");
Scanner reader3=new Scanner(System.in);
Num=reader3.nextLine();
String[] Numc=Num.split("\\*");
int c1,c2;
c1=Integer.parseInt(Numc[0]);
c2=Integer.parseInt(Numc[1]);
int resultsc=c1*c2;
System.out.println("结果是:"+resultsc);
break;
case 4:
System.out.println("请输入算式:");
Scanner reader4=new Scanner(System.in);
Num=reader4.nextLine();
String[] Numd=Num.split("/");
if("0".equals(Numd[1])){
System.out.println("除数为零,除法不能进行!!");}
else{ float d1,d2;
d1=Float.parseFloat(Numd[0]);
d2=Float.parseFloat(Numd[1]);
float resultsd=d1/d2;
System.out.println("结果是:"+resultsd);}
break;
}
}
}
热心网友
时间:2024-10-04 19:19
在你输入的值有String型的数,不能被转化为Number型,或者你的值split分开过后出现了String型的值,不能被转换为Number型
热心网友
时间:2024-10-04 19:17
String[] Numa,你拆完以后,把结果打印出来,看看自己是不是拆的有问题.
或者是你输入的时候输入格式出了问题
热心网友
时间:2024-10-04 19:17
你输入的值有String型的数不能被转化为Number型