java 使用icu4j将序数字符串转换为整数

xiozqbni  于 2023-04-10  发布在  Java
关注(0)|答案(1)|浏览(207)

我正在尝试将序数字符串(比如“FOURTH”)转换为整数4。如何使用Java的International Components for Unicodeicu4j完成此操作?

RuleBasedNumberFormat formatter = new RuleBasedNumberFormat(Locale.US, RuleBasedNumberFormat.ORDINAL);

return formatter.parse("FOURTH").intValue();

看起来这不起作用,因为返回了0。我希望它返回4。
任何帮助都将不胜感激。谢谢。

tkclm6bt

tkclm6bt1#

所以我读了Javadoc documentationicu4jRuleBasedNumberFormat没有FOURTH作为一个可解析的字符串,尽管它确实支持四。

RuleBasedNumberFormat formatter = new RuleBasedNumberFormat( Locale.US , RuleBasedNumberFormat.SPELLOUT );
try
{
    int result = formatter.parse( "FOURTH".toLowerCase( Locale.ROOT ) ).intValue();
    System.out.println( "result = " + result );
}
catch ( ParseException e )
{
    … add code to handle exception.
}

运行时:
4
这就是代码应该看起来的样子,并确保使用.toLowerCase(Locale.ROOT),因为parse不适用于大写字符串。

相关问题