繁体   English   中英

从数组java中将数字字符串相加

[英]String of number add together from an array java

我有一个项目将一串未设定数量的数字组合在一起。 在项目中,您必须将字符串转换为数字数组。 然后从数组的末尾开始并将它们加在一起。 所以我想我问的是解决这个问题的最好方法。 我的老师说使用除数和模数来得到结转,但这就是他真正给我们的我设置的 Int 数组只是无法得到正确的结果。

公共类FunctionLibrary { public static String performAddition(String sNumber1, String sNumber2) { int length = 0;

if (sNumber1.length() > sNumber2.length())
{
    length = sNumber1.length()-1;
}
else
{
    length = sNumber2.length()-1;
}

int[] input1 = new int[length];
int[] input2 = new int[length];
int[] result = new int[length+1];
String resultS = "";

for (int i = length; i > 0; i--)
{
    input1[i] = Character.getNumericValue(sNumber1.charAt(i));
}

for (int i = length; i > 0; i--)
{
    input2[i] = Character.getNumericValue(sNumber2.charAt(i));
}

for (int i = length; i > 0; i--)
{
    int temp = 0;
    int divid = 0;
    int modulas = 0;
    int answer = 0;
    temp = input1[i] +  input2[i];
    divid = temp/10;
    modulas = temp%10;

    input1[i+1] += modulas;

    answer = divid;

    result[i] = answer;
}

for (int i = 0; i <= length; i++)
{
    resultS += Integer.toString(result[i]);
}

return resultS;

} }

此编辑没有错误,但没有返回结果。

这是我到目前为止所拥有的,但它只是不想正常工作。 任何帮助,将不胜感激。

for (int i = 长度;i >= 0;i--) {

 int temp = 0; int divid = 0; int modulas = 0; int answer = 0; temp = input1[i] + input2[i]; divid = temp/10; modulas = temp%10;

首先,为什么不合并线? 其次,除法与加法有什么关系?

因为你必须把数字带到下一个; 您将需要一个在 for 循环之外的变量。 由于您将两个个位数相加,您可以得到的最高数字是 18,因此您可以;

  • 得到一个你回馈的一位数,或者;

  • 得到 10 + 一个你回馈的个位数

所以在for循环里面; 您测试温度是否为个位数:

布尔carryOne = false;

for (int i = 长度;i >= 0;i--) {

 int answer = 0; int temp = input1[i] + input2[i]; if(carryOne) { temp++; carryOne = false; } if(temp >= 10) { // two digits: answer = (temp - 10); // you give the left digit back, carryOne = true; // and carry the ten } else answer = temp; // single digit

学习编码的最大过程,是获得心态

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM