Java 设计大整数类

Java 设计大整数类,java,Java,我正在设计一个名为HugeInteger的类,它使用40个元素的数字数组来存储整数。我提供了一个名为parse的方法,在该方法中,它接收一个字符串,提取每个数字,如下面的代码段所示。我还提供了add方法,它接收HugeInteger类的对象来进行添加。 为add提供的方法不符合建议,我希望您能帮助我解决问题。 我注意到以前有人问过一些类似的问题,但这对我没有帮助 private int [] integerDigits = new int[SIZE]; //constructor that e

我正在设计一个名为HugeInteger的类,它使用40个元素的数字数组来存储整数。我提供了一个名为parse的方法,在该方法中,它接收一个字符串,提取每个数字,如下面的代码段所示。我还提供了add方法,它接收HugeInteger类的对象来进行添加。 为add提供的方法不符合建议,我希望您能帮助我解决问题。 我注意到以前有人问过一些类似的问题,但这对我没有帮助

private int [] integerDigits = new int[SIZE];

//constructor that enables an object of class to be initialised when it is declared
    public HugeInteger(String stringOfIntegers)
    {
        setOfIntegers = stringOfIntegers;
    }//end of constructor

private int[] parseFunction (String str)
    {
        for (int i = 0; i < str.length(); i++)
        {
            char ch = str.charAt(i);
            if (Character.isDigit(ch))
                integerDigits[i] = Character.getNumericValue(ch);
            else
                    integerDigits[i] = 0;
        }   
                return integerDigits;
        }//end of method parseFunction

    public HugeInteger addFunction(HugeInteger number)
        {
            parseFunction(setOfIntegers);
            return new HugeInteger(setOfIntegers +number.parseFunction(setOfIntegers));
        }//end of method addFunction
private int[]integerDigits=new int[SIZE];
//构造函数,使类的对象在声明时能够初始化
公共HugeInteger(整数字符串)
{
setOfIntegers=stringOfIntegers;
}//构造函数结束
私有int[]解析函数(字符串str)
{
对于(int i=0;i
错误在这一行:

return new HugeInteger(setOfIntegers +number.parseFunction(setOfIntegers));
因为setOfIntegers是一个字符串,+符号并不表示相加,而是表示串联(背靠背写入)。因此,当添加5和6时,将得到56而不是11。 与调用构造函数不同,您需要实现加法,就像在纸上一样,从后面到前面,使用变量保存进位号

例如:

    99
+   11
     0 carry 1
    10 carry 1
=  110
此外,由于您总是使用40位数字,并且从数组的前面开始,因此您的问题无法知道这些数字中有多少真正属于该数字,因此无法区分“5”、“500”、“5000”等等。这是一个问题,因为parseFunction(5)=parseFunction(50)={5,0,0,0,…,0}(总共39个零),并且问题不知道如何对齐数字。最好向下循环(“integerDigits[40-i]=Character.getNumericValue(ch);”),因为这样“5”将变成0000…05,“50”将变成000050

另一个小错误是

number.parseFunction(setOfIntegers)
应该是哪一个

number.parseFunction(number.setOfIntegers)

为添加提供的方法未按建议工作
。。。怎么做?这是家庭作业,还是因为其他原因你不喜欢
biginger
?你需要先解决解析问题,添加一个单元测试。除非你有数字要加,否则你不能有意义地加。然后创建一个测试,将两个数字相加,并编写一个循环,将每个数字相加。并非所有方法名称都必须以“Function”结尾。debug按钮位于run按钮旁边。Java中没有函数,只有方法感谢Kirdie的参与,非常感谢。