2016-07-23 68 views

回答

1

先做檢查你在哪裏使用。

if(value <=30){ 
    getOrdinalFor(value) 
}else{ 
    return "st"; 
} 

這裏是你的核心邏輯

public static String getOrdinalFor(int value) { 
int tenRemainder = value % 20; 

switch (tenRemainder) { 
case 1: 
    return "st"; 
case 2: 
    return "nd"; 
case 3: 
    return "rd"; 
default: 
    return "th"; 
} 
} 
2

我認爲這是可以做你想做的:

public class Base { 
    public static void main(String[] args) { 
    for (int i = 1; i < 31; i++) { 
     System.out.println(i + getOrdinalFor(i)); 
    } 
    } 

    public static String getOrdinalFor(int value) { 
     int tenRemainder = value % 10; 
    if (value == 11 || value == 12 || value == 13) { 
     return "th"; 
    } 
    switch (tenRemainder) { 
    case 1: 
     return "st"; 
    case 2: 
     return "nd"; 
    case 3: 
     return "rd"; 
    default: 
     return "th"; 
    } 
} 
} 
+0

如果值爲11,12或13,會發生什麼? –

+0

不錯的一個...我們需要驗證.... –

+0

@EhsanAnjum請再次嘗試更新的版本,並讓我知道..... :) –

相關問題