“线程中的异常”;“主要”;java.lang.NumberFormatException:对于输入字符串:";t1";?
我是Java新手,我遇到了这个问题。我将发布链接并记住,这里的其他类似问题无法帮助我,因为我有不同的代码,因此我在这里创建了此帐户 代码:“线程中的异常”;“主要”;java.lang.NumberFormatException:对于输入字符串:";t1";?,java,Java,我是Java新手,我遇到了这个问题。我将发布链接并记住,这里的其他类似问题无法帮助我,因为我有不同的代码,因此我在这里创建了此帐户 代码: package secret.package.guys; import java.util.Scanner; public class NewClass { public static void main(String[] args) { System.out.println("Number: "); Scanner scanner =
package secret.package.guys;
import java.util.Scanner;
public class NewClass {
public static void main(String[] args) {
System.out.println("Number: ");
Scanner scanner = new Scanner(System.in);
String data=scanner.nextLine();
System.out.println(data);
int a = 0;
while(a < 6) {
System.out.println(a);
a++;
}
if (a > 6){
System.out.println("SAFE SPACE");
} else {
System.out.println("Get in the Safe Space");
System.out.println("PERSON has entered the Safe Space. Safe Space closes instantly.");
}
String s = new String("Old marks: ");
String t = new String("5.5");
String u = new String("4");
String v = new String("3");
String w = new String("2.5");
String x = new String("6.0");
String y = new String("5.2");
String z = new String("4");
String t1 = t.replaceAll("5.5", "6");
String u1 = u.replaceAll("4", "4");
String v1 = v.replaceAll("3", "5");
String w1 = w.replaceAll("2.5", "3");
String x1 = x.replaceAll("6.0", "2");
String y1 = y.replaceAll("5.2", "1.8");
String z1 = z.replaceAll("4", "4.4");
System.out.println("New: " + s + " " + t1 + " " + u1 + " " + v1 + " " + w1 + " "
+ x1 + " " + y1 + " " + z1);
System.out.println("Enter new marks: ");
int foo = Integer.parseInt("t1");
int foo1 = Integer.parseInt("u1");
int foo2 = Integer.parseInt("v1");
int foo3 = Integer.parseInt("w1");
int foo4 = Integer.parseInt("x1");
int foo5 = Integer.parseInt("y1");
int foo6 = Integer.parseInt("z1");
System.out.println("foo1 + foo2 + foo3 + foo4 + foo5 + foo6");
}
package secret.package.guys;
导入java.util.Scanner;
公共类新类{
公共静态void main(字符串[]args){
System.out.println(“编号:”);
扫描仪=新的扫描仪(System.in);
字符串数据=scanner.nextLine();
系统输出打印项次(数据);
int a=0;
while(a<6){
系统输出打印项次(a);
a++;
}
如果(a>6){
System.out.println(“安全空间”);
}否则{
System.out.println(“进入安全空间”);
System.out.println(“人员已进入安全空间。安全空间立即关闭”);
}
字符串s=新字符串(“旧标记:”);
字符串t=新字符串(“5.5”);
字符串u=新字符串(“4”);
字符串v=新字符串(“3”);
字符串w=新字符串(“2.5”);
字符串x=新字符串(“6.0”);
字符串y=新字符串(“5.2”);
字符串z=新字符串(“4”);
字符串t1=t.replaceAll(“5.5”、“6”);
字符串u1=u.replaceAll(“4”,“4”);
字符串v1=v.replaceAll(“3”、“5”);
字符串w1=w.replaceAll(“2.5”、“3”);
字符串x1=x.replaceAll(“6.0”,“2”);
字符串y1=y.replaceAll(“5.2”、“1.8”);
字符串z1=z.replaceAll(“4”、“4.4”);
System.out.println(“新的:“+s+”+t1+“+u1+”+v1+“+w1+””
+x1+“”+y1+“”+z1);
System.out.println(“输入新标记:”);
intfoo=Integer.parseInt(“t1”);
intfoo1=Integer.parseInt(“u1”);
intfoo2=Integer.parseInt(“v1”);
intfoo3=整数.parseInt(“w1”);
intfoo4=Integer.parseInt(“x1”);
int foo5=Integer.parseInt(“y1”);
intfoo6=Integer.parseInt(“z1”);
System.out.println(“foo1+foo2+foo3+foo4+foo5+foo6”);
}
}必须对字符串变量的值而不是变量名调用
parseInt
比如说,
int foo = Integer.parseInt("t1");
应该是
int foo = Integer.parseInt(t1);
只有当
t1
包含整数的字符串表示时(这意味着parseInt(z1)
和parseInt(y1)
仍然会失败,因为这些String
不包含整数)。您的代码尝试将字符串解析为数值
如果值为“1”,它将工作,但由于“t1”不是有效的数值,它将失败,并导致此异常
我想你想要的是,而不是:
int foo = Integer.parseInt("t1");
将“t1”作为字符串传递
int foo = Integer.parseInt(t1);
使用参考变量t1。请按如下方式更改代码
int foo = Integer.parseInt(t1);
int foo1 = Integer.parseInt(u1);
int foo2 = Integer.parseInt(v1);
int foo3 = Integer.parseInt(w1);
int foo4 = Integer.parseInt(x1);
int foo5 = (int)Float.parseFloat(y1);
int foo6 = (int)Float.parseFloat(z1);
System.out.println(foo1 + foo2 + foo3 + foo4 + foo5 + foo6);
例外情况是,您正在尝试将
“t1”
字符串转换为整数,这是不可能的,因为如果使用int,则t1不是任何表示形式。相反,您必须解析变量t1
。您应该知道,replaceAll将正则表达式作为第一个参数。您的代码`stringt1=t.replaceAll(“5.5”、“6”);`将555和575替换为6。谢谢您的回答。现在我觉得犯了这样的错误很愚蠢。现在我得到了以下错误行:线程“main”java.lang.NumberFormatException中的异常:对于输入字符串:“1.8”将其解析为双精度,而不是整数。它是一个带小数的数字,所以不能是整数。所以我应该写:int foo Integer.parsedouble(t1)?不,Double.parseDouble(t1);(如果t1是一个有十进制值的,如果它没有十进制值,Integer.parseInt会这样做)那么,如果他这样做:下一个抛出的异常是什么?我不明白你在想什么。我已经回答了一个答案,如果他这样做,这就是结果:现在我在线程“main”中得到这个错误行:异常java.lang.NumberFormatException:对于输入字符串:“1.8”Ok。。“1.8”为float.int foo5=(int)float.parseFloat(y1)时发生异常;intfoo6=(int)Float.parseFloat(z1);