NumberFormatException:对于输入字符串:";[memorylocation";java
我正在做一个任务,目标是,除其他外,添加两个大整数 我们无法更改的主要内容:NumberFormatException:对于输入字符串:";[memorylocation";java,java,runtime-error,Java,Runtime Error,我正在做一个任务,目标是,除其他外,添加两个大整数 我们无法更改的主要内容: import java.util.*; import MyUtils.MyUtil; public class CSCD210HW7 { public static void main(String [] args)throws Exception { int choice; String num; LargeInt one, two, three = null;
import java.util.*;
import MyUtils.MyUtil;
public class CSCD210HW7
{
public static void main(String [] args)throws Exception
{
int choice;
String num;
LargeInt one, two, three = null;
Scanner kb = new Scanner(System.in);
num = HW7Methods.readNum(kb);
one = new LargeInt(num);
num = HW7Methods.readNum(kb);
two = new LargeInt(num);
do
{
choice = MyUtil.menu(kb);
switch(choice)
{
case 1: System.out.println(one + "\n");
break;
case 2: System.out.println("The value of the LargeInt is: " + two.getValue() + "\n");
break;
case 3: num = HW7Methods.readNum(kb);
one.setValue(num);
break;
case 4: if(one.equals(two))
System.out.println("The LargeInts are equal");
else
System.out.println("The LargeInts are NOT equal");
break;
case 5: three = two.add(one);
System.out.printf("The results of %s added to %s is %s\n", one.getValue(), two.getValue(), three.getValue());
break;
case 6: HW7Methods.displayAscendingOrder(one, two, three);
break;
default: if(two.compareTo(one) < 0)
System.out.printf("LargeInt %s is less than LargeInt %s\n", two.getValue(), one.getValue());
else if(two.compareTo(one) > 0)
System.out.printf("LargeInt %s is greater than LargeInt %s\n", two.getValue(), one.getValue());
else
System.out.printf("LargeInt %s is equal to LargeInt %s\n", two.getValue(), one.getValue());
break;
}// end switch
}while(choice != 8);
}// end main
}// end class
我以前从未见过这种错误。有人能告诉我发生了什么吗
对于输入字符串:“[I@55f96302
这不是您试图在此处解析的“正确”字符串
这就是调用toString()
时,int[]
的样子
String stringOne = myArray.toString();
你为什么这么做?那该怎么办
int r = Integer.parseInt(stringOne);
int e = Integer.parseInt(stringTwo);
int s = r + e;
从外观上看,您试图用LargeInt
类通过某种方式将“大”整数存储在一个整数数组中来处理它们。没关系,biginger
也可以这样工作(或多或少),但您不能仅仅通过尝试转换回int
来进行计算(所有这些数字都太大了,int
算法无法处理,即使您正确地进行了字符串解析)
对于输入字符串:“[I@55f96302
这不是您试图在此处解析的“正确”字符串
这就是调用toString()
时,int[]
的样子
String stringOne = myArray.toString();
你为什么这么做?那该怎么办
int r = Integer.parseInt(stringOne);
int e = Integer.parseInt(stringTwo);
int s = r + e;
从外观上看,您试图用LargeInt
类通过某种方式将“大”整数存储在一个整数数组中来处理它们。没关系,biginger
也可以这样工作(或多或少),但您不能仅仅通过尝试转换回int
来进行计算(所有这些数字都太大了,int
算法无法处理,即使您正确地进行了字符串解析)
对于输入字符串:“[I@55f96302
这不是您试图在此处解析的“正确”字符串
这就是调用toString()
时,int[]
的样子
String stringOne = myArray.toString();
你为什么这么做?那该怎么办
int r = Integer.parseInt(stringOne);
int e = Integer.parseInt(stringTwo);
int s = r + e;
从外观上看,您试图用LargeInt
类通过某种方式将“大”整数存储在一个整数数组中来处理它们。没关系,biginger
也可以这样工作(或多或少),但您不能仅仅通过尝试转换回int
来进行计算(所有这些数字都太大了,int
算法无法处理,即使您正确地进行了字符串解析)
对于输入字符串:“[I@55f96302
这不是您试图在此处解析的“正确”字符串
这就是调用toString()
时,int[]
的样子
String stringOne = myArray.toString();
你为什么这么做?那该怎么办
int r = Integer.parseInt(stringOne);
int e = Integer.parseInt(stringTwo);
int s = r + e;
从外观上看,您试图用
LargeInt
类通过某种方式将“大”整数存储在一个整数数组中来处理它们。没关系,biginger
也可以这样工作(或多或少),但您不能仅仅通过尝试转换回int
来进行计算(所有这些数字都太大了,int
算法无法处理,即使您正确地进行了字符串解析).我认为add
方法的想法是,你应该把两个LargeInt
数字逐位相加。你要做的是把它们都转换回int
然后再相加,但这不是“大整数”的意义所在类。这是用于存储太大而无法放入int
数据类型中的数字。因此,我猜您在处理赋值时完全错了。有趣的是,这是多么相似:(我指的是代码)我认为,add
方法的想法是,你应该将两个LargeInt
数字逐位相加。你要做的是将它们都转换回int
,然后再相加,但这不是“大整数”的意义所在类。这是用于存储太大而无法放入int
数据类型中的数字。因此,我猜您在处理赋值时完全错了。有趣的是,这是多么相似:(我指的是代码)我认为,add
方法的想法是,你应该将两个LargeInt
数字逐位相加。你要做的是将它们都转换回int
,然后再相加,但这不是“大整数”的意义所在类。这是用于存储太大而无法放入int
数据类型中的数字。因此,我猜您在处理赋值时完全错了。有趣的是,这是多么相似:(我指的是代码)我认为,add
方法的想法是,你应该将两个LargeInt
数字逐位相加。你要做的是将它们都转换回int
,然后再相加,但这不是“大整数”的意义所在类。这是用于存储太大而无法放入int
数据类型中的数字。因此,我猜您在处理赋值时完全错了。有趣的是,这是多么相似:(我指的是代码)int
无法处理这些大数字。你需要自己实现加法。这真是一项艰巨的任务。也许可以看看biginger
的源代码(我假设这是学校作业。在现实生活中,你只需直接使用biginger
).int
无法处理这些大数字。你需要自己实现加法。这真是一项艰巨的任务。也许可以看看biginger
的源代码(我假设这是学校作业。在现实生活中,你只需直接使用biginger
).int
无法处理这些大数字。你需要自己实现加法。这真是一项艰巨的任务。也许可以看看biginger
的源代码(我假设这是学校作业。在现实生活中,你只需直接使用biginger
。int
可以