【问题标题】:Java. How to add primitive values in a loop - (for)爪哇。如何在循环中添加原始值 - (for)
【发布时间】:2017-01-16 03:26:28
【问题描述】:

我正在尝试取一个随机数并将其拆分,然后添加它的数字,所以数字“3457”将是........ 3 + 4 + 5 + 7。但我来了解决了必须在循环中添加值的问题,但我发现这很困难,因为我循环中的大多数类型都是原始类型,因此我不能真正使用“nextInt()”方法......所以我的问题...... . 如何在循环中添加值。 到目前为止,这是我的代码...

import java.util.Scanner;
public class HellloWorld {

    public static void main(String[] args) {
       Scanner input = new Scanner(System.in);
           try {
           System.out.println("Please Enter your number: " + "\n");
           int int1 = Integer.parseInt(input.next());
           int life = String.valueOf(int1).length();
           for (int i = life; i >= 1; i--) {
           int int2 = int1 / (int)(Math.pow(10, i-1));
           int int3 = int2 % (int)(Math.pow(10,1));

               if (i == 1) {
            System.out.print(int3 + " = ");
        } else {
            System.out.print(int3 + " + ");
        }
    }

    } finally {
        input.close();
    }
}
}

【问题讨论】:

  • 有太多方法可以做到这一点。我将在一秒钟内下降 1 路

标签: java loops add primitive-types


【解决方案1】:

您可以像这样使用Stream 执行此操作:

public static void main(String... args) {
  Scanner sc = new Scanner(System.in);
  String strNum = sc.next();
  int sum = Arrays.stream(strNum.split(""))
              .mapToInt(str -> Integer.parseInt(str))
              .sum();
  System.out.println(sum);
}

【讨论】:

    【解决方案2】:
    1. 对于 sum 的情况 - 你可以使用另一个变量,比如说 sum 有点像 -

      int sum = 0;
      
      for(...) {
      ....
      sum = sum + yourDigit;
      if{...} else {...}
      } //end of for loop
      System.out.println(sum);
      
    2. 您的逻辑似乎没有进行求和 - 尝试使用 (1) 来查看是否得到所需的结果。

    3. 想想

      int sum = 0; 
      int input = int1; 
      while (input != 0) {
         int lastdigit = input % 10;  //(right to left) one's to tens to hundreds place value
         sum += lastdigit; // sum = sum + lastDigit
         input /= 10; // your if..else can be based on this value
      }
      

    【讨论】:

    • 谢谢您,先生,它有效。但如果我可以再问你一个问题。当 for 循环运行第一次迭代时。然后评估语句“ sum = sum + digit”,从而使“sum”的值=可以说等于“ 60”。从这里开始,sum 的值现在是永久“60”而不是初始化值了吗?
    • @Jamisco - 如果我可以这样说的话,在循环中总和永远不会重新初始化。因此,该值仍然是循环内最后一次迭代中的值。
    【解决方案3】:

    我奇怪但史诗般的做法:

    public static void main(String[] args) {
        int a = 1234;   //say you get that number somehow... lets say thru Scanner  
        String b = String.valueOf(a);   //convert to a string   
        int result = 0;     
        for (int i = 0; i < b.length(); i++) {
            result = result + Integer.parseInt(Character.toString(b.charAt(i))); // here a conversation is happening of epic scale
        }
                System.out.println("result is: "+ result);
    }
    

    【讨论】:

      猜你喜欢
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      • 2018-09-02
      • 2016-01-14
      • 2013-05-06
      • 1970-01-01
      • 2021-12-14
      • 2013-03-02
      相关资源
      最近更新 更多