首页 >后端开发 >C++ >如何在 C# 中高效创建序数(例如,第 1、第 2、第 3)?

如何在 C# 中高效创建序数(例如,第 1、第 2、第 3)?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-14 16:22:47520浏览

How Can I Efficiently Create Ordinal Numbers (e.g., 1st, 2nd, 3rd) in C#?

在 C# 中创建序数:一种便捷的方法

在 C# 中,将数字表示为序数(例如,1st、2nd、3rd 等)可能是一个编程难题。

String.Format() 可以实现吗?

不幸的是,String.Format() 不直接支持序数格式化。

解决方案:创建自定义函数

为了高效地生成序数,您可以创建一个定制函数:

<code class="language-csharp">public static string AddOrdinal(int num)
{
    if (num <= 0) return num.ToString(); //处理0及负数

    string number = num.ToString();
    int lastDigit = num % 10;
    int lastTwoDigits = num % 100;

    if (lastTwoDigits >= 11 && lastTwoDigits <= 13)
    {
        return number + "th";
    }
    else if (lastDigit == 1)
    {
        return number + "st";
    }
    else if (lastDigit == 2)
    {
        return number + "nd";
    }
    else if (lastDigit == 3)
    {
        return number + "rd";
    }
    else
    {
        return number + "th";
    }
}</code>

示例用法:

<code class="language-csharp">Console.WriteLine(AddOrdinal(1));  // 输出 "1st"
Console.WriteLine(AddOrdinal(2));  // 输出 "2nd"
Console.WriteLine(AddOrdinal(3));  // 输出 "3rd"
Console.WriteLine(AddOrdinal(12)); // 输出 "12th"
Console.WriteLine(AddOrdinal(21)); // 输出 "21st"
Console.WriteLine(AddOrdinal(0));  // 输出 "0"
Console.WriteLine(AddOrdinal(-5)); // 输出 "-5"</code>

国际化说明:

此方法针对的是英语序数。对于国际化,请考虑研究各种语言的特定序数格式,并相应地调整函数。

以上是如何在 C# 中高效创建序数(例如,第 1、第 2、第 3)?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn