java - Integer.valueOf 阿拉伯数字工作正常,但 Float.valueOf 相同数字给出 NumberFormatException

标签 java android numberformatexception arabic-support

使用阿拉伯数字 Integer.valueOf("۱")返回整数 1 但 Float.valueOf("۱")Float.parseFloat("۱")抛出 NumberFormatException如果你使用英文数字Float.valueOf("1"),它不会抛出任何异常,这是java中的错误还是有一些解释?

我怎样才能解析这样的数字?

我在android环境中工作;

最佳答案

好像 Float.parseFloat() 不支持东方阿拉伯数字。或者,您可以使用 NumberFormat 类(class):

Locale EASTERN_ARABIC_NUMBERS_LOCALE = new Locale.Builder()
                                                 .setLanguage("ar")
                                                 .setExtension('u', "nu-arab")
                                                 .build();
float f = NumberFormat.getInstance(EASTERN_ARABIC_NUMBERS_LOCALE)
                      .parse("۱٫۵")
                      .floatValue();
System.out.println(f);

输出:
1.5

关于java - Integer.valueOf 阿拉伯数字工作正常,但 Float.valueOf 相同数字给出 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60044997/

相关文章:

java - 如何获取 Maven 依赖项列表以及从中获取它们的存储库

java - 如何反转逗号后的字符串,然后打印字符串的前半部分Java

java - 帮助开始使用 Java 中的 Apache Lucene

java - 在android中获取json时控制空值

java - Android:奇怪的银河标签行为

java - NumberFormatException Android Java

java - 如何将 map api key 存储在 local.properties 中并在 AndroidManifest.xml 中使用

android - Android Kotlin 中的 Moshi - ENUM 作为 MutableMap 键在反序列化时转换为 String

java - 如何使用 HashMap 在 ExpandableListView 中实现过滤器

java - 尝试使用 JSP 搜索相似图像时出错