簡體   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