繁体   English   中英

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

[英]Java - add 2 numbers together (as strings, can't use parse.int)

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

Java AddStrings 123 456

总和为:579

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

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

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

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

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

试试这个:-

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

只需使用“+”将它们加在一起。 我认为你是在过度思考这个问题。

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

暂无
暂无

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

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