Java - 将 2 个数字加在一起(作为字符串,不能使用 parse.int)

问题描述 投票:0回答:6

我需要 2 个命令行参数作为 2 个字符串数字。然后使用循环,将数字加在一起。例如,

Java 添加字符串 123 456

总数是:579

这是为了课堂作业,无法弄清楚循环是什么。我也不能只使用 parse.Int 将字符串转换为整数。有什么想法吗?

java string concatenation
6个回答
0
投票

只需使用“+”将它们相加即可。我认为你想多了这个问题。


0
投票

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


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

很简单。我发现很多只是看着谷歌。或者:

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

0
投票

试试这个:-

首先,你接受输入。让 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);

0
投票
  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();
  }

0
投票

需要解析一个String的每个字符来计算总和如下:

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();
}
© www.soinside.com 2019 - 2024. All rights reserved.