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

如何在Java中从textfield中获取波斯数字并转换为double?,java,Java,如何将“۱۲۳۴۵”波斯字符串数字转换为双精度 我想从文本字段中获取波斯数字,并将其保存在双变量中。我试过: product.setSellPrice(Double.parseDouble(txtProductSalePrice.getText())); 但这会抛出由以下原因引起的:java.lang.NumberFormatException:对于输入字符串:,如果您使用它可以解决您的问题。将你的精确性应用到你的文本中,这个库会为你做其他的事情 PS:您应该使用适当的波斯语字体,您可以将字符

如何将“۱۲۳۴۵”波斯字符串数字转换为双精度

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

product.setSellPrice(Double.parseDouble(txtProductSalePrice.getText()));
但这会抛出由以下原因引起的
:java.lang.NumberFormatException:对于输入字符串:

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


PS:您应该使用适当的波斯语字体,您可以将字符串分解为字符,并使用例如,
tocharray()
对字符进行迭代,然后将每个数字转换为等效的英语数字

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
是否支持非罗马字母。

所以您希望将波斯语文本转换为十进制输出。搜索一些库或者自己动手,我不相信java有一个默认库来做这件事。这个答案很有用。仅提及这一点也可以帮助删除我的答案。