如何从文本字段中获取波斯数字并在Java中转换为double?

时间:2016-02-03 11:16:00

标签: java

如何将“12345”波斯字符串数转换为双倍?

我想从文本字段中获取波斯语数字并将其保存在双变量中。我试过了:

product.setSellPrice(Double.parseDouble(txtProductSalePrice.getText()));

但这会引发Caused by: java.lang.NumberFormatException: For input string:

2 个答案:

答案 0 :(得分:1)

您可以将字符串细分为字符并使用例如toCharArray()遍历字符,然后将每个数字转换为其等效的英语。

String number = "";
for (char c : txtProductSalePrice.toCharArray()) {
    if (c == "۱") {
        number.concat("1");
        continue;
    }
    if (c == "۲") {
        number.concat("2");
        continue;
    }
    ....
}
return new BigDecimal(number).doubleValue();

我确信这可能会有所改善,但我并不完全确定char是否支持非罗马字母。

答案 1 :(得分:0)

如果您使用Calligraphy,它可以解决您的问题。将精确的东西应用到你的文本中,这个库会为你做其余的事情。

PS:您应该使用正确的 Farsi 字体