在 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中文網其他相關文章!