Java中是否可以将整数转换为序数名称? [英] Is there a way in Java to convert an integer to its ordinal name?

查看:82
本文介绍了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中是否可以将整数转换为序数名称?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆