2017-01-16 10 views
1

乱数を分けて分割し、数字を追加しようとしているので、数字 "3457"は....... 3 +しかし、私はループ内の値を追加しなければならないという問題に遭遇しましたが、私のループ内のほとんどの型がプリミティブ型であるため、実際には "nextInt()"を使用しないので、メソッド...だから私の質問に...どのようにループ内の値を追加しますか? がここに...これまでに私のコードですJava。ループのプリミティブ値を追加する方法 - (for)

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(); 
    } 
} 
} 
和ケースについては
+0

がありますこれを行うにはあまりにも多くの方法。私は1秒以内に1つの方法を持つつもりです –

答えて

2
  1. -

    int sum = 0; 
    
    for(...) { 
    .... 
    sum = sum + yourDigit; 
    if{...} else {...} 
    } //end of for loop 
    System.out.println(sum); 
    
  2. あなたのロジックはならないようです - あなたが別の変数を使用することができ、いくぶんとしてsumを言うことができます合計を行う - あなたが望むものを得るかどうかを見るために(1)を使ってみてください。あなたはこのようなStreamを使用してこれを行うことができます

    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 
    } 
    
+0

ありがとう、それは動作します。しかし、もし私があなたにもう1つの質問をするかもしれません。 forループが最初の反復を実行するとき。 「sum = sum + digit」というステートメントが評価され、sumの値が= 60と等しくなるようにします。ここから、sumの値は永久に "60"で、もはや初期化された値ではありませんか? – Jamisco

+0

@ Jamisco - ループの中で言えば、和は決して再初期化されません。したがって、値はループ内の最後の反復であったものにとどまります。 – nullpointer

+0

私はヘルプと情報のためにたくさんありがとう – Jamisco

4

  • と思う:それを行うの

    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); 
    } 
    
  • 1

    私の奇妙しかし叙事詩方法:

    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); 
    } 
    
    関連する問題