2016-07-23 99 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请再次尝试更新的版本,并让我知道..... :) –

相关问题