首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android到Ordinal格式的转换

Android到Ordinal格式的转换
EN

Stack Overflow用户
提问于 2012-03-17 21:21:19
回答 3查看 3.3K关注 0票数 10

在我重新发明轮子之前,Android是否有任何工具可以将整数转换为支持多语言的序号字符串?也就是说,它会将整数3转换为英语中的“3”和法语中的"3eme“。

我可以看到如何使用一些逻辑和Android的自动字符串替换来做到这一点,但我认为这肯定是其他人遇到的,不仅仅是用于日期。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-17 22:04:02

Java和Android都支持创建序号字符串。Android支持创建复数字符串资源,但不支持序数。

票数 7
EN

Stack Overflow用户

发布于 2014-03-24 22:27:11

如果需要序数的范围有限,那么最好使用<string-array>来定义序数:

代码语言:javascript
复制
<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>

然后通过以下方式访问:

代码语言:javascript
复制
String ordinal = getResources().getStringArray(R.array.ordinals)[count];

当然,这不会让你自动翻译成其他语言--你必须自己去做(如果你的计数超出了这个简单代码的范围,你会得到一个异常)。

票数 5
EN

Stack Overflow用户

发布于 2020-08-12 20:56:46

仅供将来参考,我偶然发现了这个问题,并发现现在您可以使用ICU MessageFormat来执行以下操作:

代码语言:javascript
复制
import android.icu.text.MessageFormat

fun toOrdinal(day: String): String {
    val formatter = MessageFormat("{0,ordinal}", Locale.getDefault())
    return formatter.format(arrayOf(day.toInt()))
}

您将获得以下结果:

代码语言:javascript
复制
1 -> 1st
2 -> 2nd
3 -> 3rd
4 -> 4th
5 -> (...)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9750302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档