2014-03-30 147 views
0

我是一個奮鬥的新手,試圖完成一個程序分配,並堅持我的輸出重複自己與一個整數的數字應該在一行,但間隔(正確例如:1234的數字是:1 2 3 4)。這是一個錯誤輸出的例子,下面是我的程序。任何指導將不勝感激。Java輸入整數和輸出間隔的數字和總和

輸入一個整數:1234

的1234的數字是:1個

的1234的數字是:2個

的1234的數字是:3個

的1234中的數字是:4

數字之和= 10

我的程序:

import java.util.*;                

public class IntegertoIndividualtoSum                         
{ 
    public static void main(String[] args)               
    { 

     long integer, digit, sum = 0; 
     char digitAt; 
     String Stringnum; 

     Scanner keyboard = new Scanner(System.in); 

     System.out.print("Enter an integer: "); 
     integer = keyboard.nextLong(); 

     Stringnum = String.valueOf(Math.abs(integer)); 

     for (int count = 0; count < Stringnum.length(); count++) 
     { 
     digitAt = Stringnum.charAt(count); 

     digit = Character.getNumericValue(digitAt); 

     sum += digit; 

     System.out.println("The digits of " + integer + " are: " + digit); 
     } 
     System.out.println("The sum of the digits = " + sum);  
    } 
} 
+0

'應該在一條線上,但隔開'什麼阻止你這樣做? –

+0

@SotiriosDelimanolis我一整天都在盯着我的屏幕試圖弄清楚。 – SolomonSky

+0

不要只是盯着它,分析它。你如何打印空間? 'println'做什麼?看看javadoc。Java有很好的文檔記錄。 –

回答

2

您正在使用方法System.out.println,這將在年底打印新的行。你可以使用System.out.print,這不會那樣做。

另外,請記住,你得到這個角色"The digits of ... are: ..."很多次,因爲它是for循環。

System.out.print("The digits of " + integer + " are: "); 

for (int count = 0; count < Stringnum.length(); count++) { 
    // ... 
    System.out.print(digit + " "); // add space 
} 

System.out.println("\nThe sum of the digits = " + sum); // note new-line character '\n' 

注:

  • 你可以在裏面添加一個新字符String要與"\n"打印。
+0

非常感謝,謝謝。 – SolomonSky

0

你的問題的一部分是你打印每個數字的整個行。您正在遍歷字符串的長度,並在每次迭代中打印輸出。

第二個問題是,System.out.println會自動將換行符附加到傳入的參數的末尾。如果使用System.out.print,則會按照您的預期在一行中獲得輸出。

這應該足以讓你開始。

0

如果你在循環中做某件事,每當你經過循環時都會發生。

想一想在進入循環之前你想要做什麼,循環的每次迭代需要做什麼以及完成循環之後要做什麼。

而且,要知道,你可以打電話print(...),而不是println(...)不打算在最後一個新行打印,並且可以調用println()不帶參數去到一個新行不打印任何東西。