2016-10-04 142 views
0

我想運行一個程序,輸出整數中輸入的每個數字的總和。我將如何閱讀數字並輸出每個數字?如何讀取Java中每個數字的每個數字

示例:輸入爲4053,輸出爲「4 + 0 + 5 + 3 = 12」。

import java.util.Scanner; 

public class Digits{ 
    public static void main(String args[]) { 
    //Scans in integer 
     Scanner stdin = new Scanner(System.in); 
     System.out.println("Enter in a number: "); 
     int number = stdin.nextInt(); 

     //Set sum to zero for reference 
     int sum = 0; 
     int num = number; //Set num equal to number as reference 

     //reads each digit of the scanned number and individually adds them         together 
     //as it goes through the digits, keep dividing by 10 until its 0. 
     while (num > 0) { 
      int lastDigit = num % 10; 
      sum = sum + lastDigit; 
      num = num/10; 
     } 
    } 
} 

這是我用來計算個人數字總和的代碼,現在我只需要幫助輸出個人數字。任何提示和技巧將不勝感激。

+0

你這是什麼意思outputing? –

+0

掃描儀必須逐個讀取每個數字以創建數字,然後分解爲每個數字。爲什麼不一次只讀一個角色? –

+0

當您遍歷數字時,只需輸出每個'lastDigit'的值即可。 – nhouser9

回答

0

我不知道你所說的輸出,但不是這個意思,你可以理解爲串號,並採取每一個字符,並將其解析爲整數

 Scanner stdin = new Scanner(System.in); 
    System.out.println("Enter in a number: "); 
    String number = stdin.next(); 
    int[] result = new int[number.length]; 
    for(int i=0;i<number.length;i++) { 
     result[i] = Integer.parseInt(number.charAt(i)+""); 
     } 
    return result; 
0

你可以看一下這像String,然後除以號碼。

final Scanner s = new Scanner (System.in); 
    final String line = s.nextLine().trim(); 
    final char [] array = line.toCharArray(); 

    int sum = 0; 
    for (final char c : array) 
    { 
    if (!Character.isDigit (c)) 
    { 
     throw new IllegalArgumentException(); 
    } 

    sum = sum + Character.getNumericValue (c); 
    } 

    System.out.println ("sum = " + sum); 
1
import java.util.Scanner; 

public class Digits{ 
    public static void main(String args[]) { 
    //Scans in integer 
     Scanner stdin = new Scanner(System.in); 
     System.out.println("Enter in a number: "); 
     int number = stdin.nextInt(); 

     //Set sum to zero for reference 
     int sum = 0; 
     int num = number; //Set num equal to number as reference 

     //reads each digit of the scanned number and individually adds them         together 
     //as it goes through the digits, keep dividing by 10 until its 0. 
     String numToString = ""; 

     while (num > 0) { 
      int lastDigit = num % 10; 
      numToString +=lastDigit+" + "; 
      sum = sum + lastDigit; 
      num = num/10; 
     } 
     //eliminate the last + sign 
     numToString = numToString.substring(0,numToString.lastIndexOf("+")).trim(); 
     System.out.println(numToString +" = " +sum); 
    } 
} 
+0

對於「1234」的輸入,輸出爲「4 + 3 + 2 + 1 + = 10」,它向後顯示數字幷包含不需要的「+」。 – sinclair

+0

@ sinclair:我編輯我的帖子,以便刪除最後一個+ – esprittn

0

沒有掃描儀,你可以做

StringBuilder sb = new StringBuilder(); 
String sep = ""; 
int ch; 
long sum = 0; 
while((ch = System.in.read()) > ' ') { 
    if (ch < '0' || ch > '9') { 
     System.out.println("Skipping " + (char) ch); 
     continue; 
    } 
    sb.append(sep).append((char) ch); 
    sep = " + "; 
    sum += ch - '0'; 
} 
sb.append(" = ").append(sum); 
System.out.println(sb); 
0

試試這個:

import java.util.*; 

public class Digits { 

    public static void main(String [] args) 
    { 
     Scanner input = new Scanner (System.in); 

     System.out.println("Enter number -> "); 
     int number = input.nextInt(); 
     int sum = 0; 

     String numStr = "" + number; 

     while(number > 0) 
     { 
      int lastDigit = number % 10; 
      sum += lastDigit; 
      number = number/10; 
     } 

     for(int i = 0; i < numStr.length();i++) 
     { 
      System.out.print(numStr.charAt(i)); 

      // Dont print an extra + operator at the end 
      if(i == numStr.length() - 1) continue; 

      else 
       System.out.print(" + "); 
     } 

     System.out.print(" = " + sum); 
    } 
} 
相關問題