lap*_*tou 5 java formatting android numbers
在您将我的问题标记为重复之前,我已经看到了此问题和此问题的答案。正如这些答案所示,英语的序数后缀规则非常简单,但我希望有一种支持本地化的方法。例如,10 的序数格式在英语中是 10th,但在西班牙语中是 10.\xc2\xba。是否有一个库或任何东西可以让我避免自己为每种语言实现这个?
\n将 icu 依赖项添加到您的 gradle 中:
implementation 'com.ibm.icu:icu4j:xx.xx'
Run Code Online (Sandbox Code Playgroud)
现在您RuleBasedNumberFormat可以编写类似的内容来实现本地化序数:
RuleBasedNumberFormat formatter = new RuleBasedNumberFormat(Locale.UK, RuleBasedNumberFormat.ORDINAL);
//ordinalNumber = "1st"
String ordinalNumber = formatter.format(1);
Run Code Online (Sandbox Code Playgroud)
这是一个特定于 Android 的示例,应尊重区域设置。请注意,它是用 Kotlin 编写的。\n这需要 Android 7.0 或更高版本。
\nimport android.icu.text.MessageFormat // Don't use java.text.MessageFormat!\n\nval value = 123\nval formatter = MessageFormat("{0,ordinal}", Locale("es", "ES")) // Locale.US for English\nval ordinalValue = formatter.format(arrayOf(value)) // "123.\xc2\xba"\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2955 次 |
| 最近记录: |