在我重新发明轮子之前,Android是否有任何工具可以将整数转换为支持多语言的序号字符串?也就是说,它会将整数3转换为英语中的“3”和法语中的"3eme“。
我可以看到如何使用一些逻辑和Android的自动字符串替换来做到这一点,但我认为这肯定是其他人遇到的,不仅仅是用于日期。
发布于 2012-03-17 22:04:02
Java和Android都支持创建序号字符串。Android支持创建复数字符串资源,但不支持序数。
发布于 2014-03-24 22:27:11
如果需要序数的范围有限,那么最好使用<string-array>来定义序数:
<string-array name="ordinals">
<item>zeroth</item>
<item>1st</item>
<item>2nd</item>
<item>3rd</item>
<item>4th</item>
<item>5th</item>
<item>6th</item>
</string-array>然后通过以下方式访问:
String ordinal = getResources().getStringArray(R.array.ordinals)[count];当然,这不会让你自动翻译成其他语言--你必须自己去做(如果你的计数超出了这个简单代码的范围,你会得到一个异常)。
发布于 2020-08-12 20:56:46
仅供将来参考,我偶然发现了这个问题,并发现现在您可以使用ICU MessageFormat来执行以下操作:
import android.icu.text.MessageFormat
fun toOrdinal(day: String): String {
val formatter = MessageFormat("{0,ordinal}", Locale.getDefault())
return formatter.format(arrayOf(day.toInt()))
}您将获得以下结果:
1 -> 1st
2 -> 2nd
3 -> 3rd
4 -> 4th
5 -> (...)https://stackoverflow.com/questions/9750302
复制相似问题