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