本文介绍了Java中是否可以将整数转换为序数名称?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想获取一个整数并获取其序数,即:
I want to take an integer and get its ordinal, i.e.:
1 -> "First"
2 -> "Second"
3 -> "Third"
...
推荐答案
如果您对"1st","2nd","3rd"等表示满意,那么下面的一些简单代码将正确处理任何整数:
If you're OK with "1st", "2nd", "3rd" etc, here's some simple code that will correctly handle any integer:
public static String ordinal(int i) {
String[] sufixes = new String[] { "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th" };
switch (i % 100) {
case 11:
case 12:
case 13:
return i + "th";
default:
return i + sufixes[i % 10];
}
}
以下是一些针对极端情况的测试:
Here's some tests for edge cases:
public static void main(String[] args) {
int[] edgeCases = { 0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 20, 21, 22, 23, 24, 100, 101, 102, 103, 104, 111, 112, 113, 114 };
for (int edgeCase : edgeCases) {
System.out.println(ordinal(edgeCase));
}
}
输出:
0th
1st
2nd
3rd
4th
5th
10th
11th
12th
13th
14th
20th
21st
22nd
23rd
24th
100th
101st
102nd
103rd
104th
111th
112th
113th
114th
这篇关于Java中是否可以将整数转换为序数名称?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!