首頁 >後端開發 >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