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

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

Mary-Kate Olsen
发布: 2025-01-14 16:22:47
原创
518 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板