数字字符串从数组java中加起来

时间:2014-04-24 19:44:07

标签: java arrays string for-loop int

我有一个项目可以将一组未设定的数字放在一起。在项目中,您必须将字符串转换为数字数组。然后从数组的末尾开始并将它们一起添加。所以我想我问的是最好的方法。我的老师说使用除数和模数来得到结转,但这就是他真正给我们的所有我有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;

} }

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

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

1 个答案:

答案 0 :(得分:0)

  

for(int i = length; i&gt; = 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循环中;你测试temp是否是单个数字:

  

boolean carryOne = false;

     

for(int i = length; i&gt; = 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

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