首頁 > 後端開發 > 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板