有没有人知道如何将数字转换为Java中相应的排名?
例如:
1 =>第一
2 =>第二
11 =>第十一
37 =>第三十七
等。
答案 0 :(得分:4)
您正在寻找序数。
我不知道任何库,但看看:
How to get the ordinal suffix of a number for many languages in Java or Groovy
或
http://www.javalobby.org/forums/thread.jspa?threadID=16906&tstart=0
答案 1 :(得分:3)
您可以使用this中的代码将数字更改为单词。在它之后你将不得不这样:
String numberAsWord = EnglishNumberToWords.convert() //The Method from the site
String numberAsRank = null;
if(numberAsWord.equals("one){
numberasRank = "first";
}else if(numberAsWord.equals("two"){
...
}else{
numberasRank = numberAsWord + "th"
}
答案 2 :(得分:0)
像这样创建一个地图:
Map<Integer, String> ranks = new HashMap<Integer, String>();
ranks.put(1, "first");
ranks.put(2, "second");
...
ranks.put(11, "eleventh");
然后当你需要它时,你可以这样做:
int number = 1;
System.out.println("The corresponding rank for " + number + " is: " + ranks.get(number));
答案 3 :(得分:0)
最简单的方法是按照Alfredo的建议去做。它很繁琐,只会达到一定的上限(当你厌倦了硬编码的时候)。
否则你将不得不为此编程一般算法。一个好的起点是阅读:http://home.comcast.net/~igpl/NWA.html