2013-12-21 210 views
3

這是我的代碼刪除逗號

System.out.println("Enter any integer number "); 
int number = scan.nextInt(); 
while (number > 0) { System.out.print(number % 10 + ",");number = number/10;} 

爲了澄清,如果用戶輸入1234 輸出應該是4,3,2,1,

怎麼能我編輯代碼以刪除最後一個數字後的逗號? 像4,3,2,1

+0

我不會寫一行代碼來顯示OP,我只是說在第一次循環之後的每次迭代中首先寫入逗號。 (給一個男人一條魚,他吃了一天.....) – KevinDTimm

回答

2

我會做以下

if (number > 0) { 
    System.out.print(number % 10); 
    number = number/10; 
    while (number > 0) { 
     System.out.print("," + (number % 10)); 
     number = number/10; 
    } 
} 

打印的第一個元素,然後將所有其他的人在前面加上一個,。這樣,你總是以一個

, X 

其他選項做不必要的if檢查。

+0

''while /'10'後'while'循環可以嵌套到'if'嗎?畢竟,如果'(number> 0)'第一次評估爲false,那麼它是否也會爲'while'循環計算false,所以如果第一次失敗,我們不需要檢查兩次? – nhgrif

+0

@nhgrif是的,好點。 –

1

既然大家是有一個重要的日子我會做這樣

while (number > 0) { 
    System.out.print(number % 10); 
    number = number/10; 
    if (number > 0) 
     System.out.print(","); 
} 
4

,這裏是我的:

while (number > 0) { 
    System.out.print(number % 10 + ((number/=10)>0 ? "," : "")); 
} 
1

這可能做的伎倆:

while (number > 0) { 
     System.out.print(number % 10); 
     number = number/10; 
     if(number!=0) System.out.print(","); 
    } 
-2

所有這裏顯示的代碼是無效的,因爲用戶可以輸入0和0應該打印出來。

有效的代碼將通過以下方式

do 
{ 
    System.out.print(number % 10); 
    number = number/10; 
    if (number != 0) 
     System.out.print(","); 
} while (number != 0); 
+0

OP明確指出'while(number> 0)'。 –

+0

@Sotirios Delimanolis,我認爲他和其他人一樣犯了同樣的錯誤。 –

+0

所以OP不知道他們想要什麼? –

3

這是最優雅的方式我前進的道路選擇的是:

String delimiter = ""; 
while (number > 0) { 
    System.out.print(delimiter + number % 10); 
    number /= 10; delimiter = ","; 
} 
0

索蒂里奧斯的解決方案作品,但這裏是一個另類:

// replacing "scan" with an example number. 
int start = 123456789; 
for (int number = start; number > 0; number = number/10) { 
    if(number < start) 
     System.out.print(','); 
    System.out.print(number % 10); 
} 

這會幹掉倒數的計算(數/ 10),但t看看它是不是每個循環中的第一個。然而,我認爲那個測試會比字符串算法(「,」+(number%10))更快。

希望這會有所幫助。

0
int x; 
    Scanner scan = new Scanner(System.in); 

    System.out.print("Enter integer : "); 

    x = scan.nextInt(); 

    for(x = 4; x>1; x = x-1) 
    { 
     System.out.print(x + ","); 
    } 
    if (x != 0) // this is so the last number doesn't end with a comma 
    { 
     System.out.print(x); 
    } 
+0

這絕對有效,如果它循環4下降到1。 –