Java -将两个数字相加(作为字符串,不能使用parse.int)

puruo6ea  于 2023-04-04  发布在  Java
关注(0)|答案(6)|浏览(132)

我需要有两个命令行参数作为两个数字,这两个数字是字符串。然后使用一个循环,将数字加在一起。例如,
Java AddStrings 123 456
总数:579
这是课堂上的一个赋值,我不知道循环是什么,我也不能用parse.int把字符串转换成整数,有什么想法吗?

9rygscc1

9rygscc11#

用“+”把它们加在一起就行了。我觉得你想多了。

pgky5nke

pgky5nke2#

基本上你找到字符串的长度。循环遍历每个字符(我会从字符串的末尾开始,然后反向工作)。(通过类型转换)并将其添加到您的总数中。每次您步骤时确保将您的数字乘以10的幂。取该值,然后将它们相加,然后输出您的答案。(我不会给予你代码,因为这是家庭作业;))

vojdkbi0

vojdkbi03#

int a = Integer.valueOf(args[0]);
int b = Integer.valueOf(args[1]);

很简单。我在谷歌上找到了很多。或者:

Integer i = new Integer(args[x]);
0tdrvxhp

0tdrvxhp4#

试试这个:-
首先,你接受输入。让s1和s2是2个字符串。所需的循环如下:

String ar[]={s1,s2};
int n=0;
for(int i=0;i<2;i++)
n+=Integer.parseInt(ar[i]);
System.out.println("The sum is:-"+n);
tpgth1q7

tpgth1q75#

public String addStrings(String num1, String num2) {
      StringBuilder sb = new StringBuilder();
      int carry = 0;
      int i = num1.length() - 1;
      int j = num2.length() - 1;

      while (i > -1 || j > -1) {
          int sum = carry + (i < 0 ? 0 : num1.charAt(i--) - 48);
          sum += j < 0 ? 0 : num2.charAt(j--) - 48;
          sb.append(sum % 10);
          carry = sum / 10;
      }
      return sb.append(carry == 1 ? "1" : "").reverse().toString();
  }
7tofc5zh

7tofc5zh6#

需要解析Strings中的每个字符,计算求和,如下:

private static String calcSum(String a, String b) {
    StringBuilder res = new StringBuilder();
    int carry = 0;
    int sum = 0;
    for(int i=a.length()-1, j=b.length()-1; i>=0 || j>=0; i--,j--) {
        char charA = (i>=0)? a.charAt(i) : '0';
        char charB = (j>=0)? b.charAt(j) : '0';
        sum = charA-'0' + charB-'0' + carry;
        carry = (sum>=10)? 1 : 0;
        res.append(sum%10);
    }
    if(sum>=10) {
        res.append(1);
    }
    return res.reverse().toString();
}

相关问题