如何在Java中将区域设置格式的数字转换为BigInteger?

如何在Java中将区域设置格式的数字转换为BigInteger?,java,formatting,numbers,locale,biginteger,Java,Formatting,Numbers,Locale,Biginteger,我搜索了很多,但没有任何帮助:(假设我需要将12.090.129.019.201.920.192.091.029.102.901.920.192.019.201.920(葡萄牙语组分隔符:)转换为BigInteger值。如何进行转换?我尝试使用NumberFormat和DecimalFormat,但没有任何效果,或者我没有正确的方法:(获取葡萄牙语的实例,然后解析其中的数字。这还将处理特定于语言环境的十进制分隔符 NumberFormat nf = NumberFormat.getNumberI

我搜索了很多,但没有任何帮助:(假设我需要将12.090.129.019.201.920.192.091.029.102.901.920.192.019.201.920(葡萄牙语组分隔符:)转换为BigInteger值。如何进行转换?我尝试使用NumberFormat和DecimalFormat,但没有任何效果,或者我没有正确的方法:(

获取葡萄牙语的实例,然后
解析其中的数字。这还将处理特定于语言环境的十进制分隔符

NumberFormat nf = NumberFormat.getNumberInstance(new Locale("pt", "PT"));
DecimalFormat df = (DecimalFormat)nf;
df.setParseBigDecimal(true);
BigDecimal decimal = (BigDecimal)df.parse("12.090.129.019.201.920.192.091.029.102.901.920.192.019.201.920");
BigInteger big = decimal.toBigInteger();

获取葡萄牙语的实例,然后
解析其中的数字。这还将处理特定于语言环境的十进制分隔符

NumberFormat nf = NumberFormat.getNumberInstance(new Locale("pt", "PT"));
DecimalFormat df = (DecimalFormat)nf;
df.setParseBigDecimal(true);
BigDecimal decimal = (BigDecimal)df.parse("12.090.129.019.201.920.192.091.029.102.901.920.192.019.201.920");
BigInteger big = decimal.toBigInteger();

删除分隔符不是更简单吗?Java并不关注内部的分隔符

String num = "2.090.129.019.201.920.192.091.029.102.901.920.192.019.201.920";
BigInteger bigInt = new BigInteger(num.replaceAll("\\.", ""));

如果需要返回,那么可以使用NumberFormat.format()返回值。

删除分隔符不是更简单吗?Java在内部不注意这些分隔符

String num = "2.090.129.019.201.920.192.091.029.102.901.920.192.019.201.920";
BigInteger bigInt = new BigInteger(num.replaceAll("\\.", ""));

如果您需要它,那么您可以使用NumberFormat.format()来获取值。

您是如何传递它的?它是字面上的,还是一个字符串?当我传递新的BigInteger(“12090129019201920192019201920192019209102901029201920”)时效果很好,但新的BigInteger(“12.090.129.019.201.920.192.091.029.102.901.920.192.019.201.920”)生成一个异常(如预期的那样)。我传递字符串是因为我正在实现一个字符串转换器来转换用户表单的输入。是否需要提供一个区域设置实例来格式化我想…但我不知道怎么做。你是如何传递它的?是真的吗?还是字符串?当我传递新的BigInteger时(“120901290192019209109129102901920”)运行良好,但新的BigInteger(“12.090.129.019.201.920.192.091.029.102.901.920.192.019.201.920”)生成异常(如预期的那样).我传递一个字符串,因为我正在实现一个字符串转换器来转换来自用户表单的输入。我想需要提供一个区域设置实例来格式化…但我不知道如何做这将在区域设置切换后立即中断(例如从葡萄牙切换到美国).Joao的区域设置编号格式要好得多。一旦区域设置切换(例如从葡萄牙切换到美国),该格式将立即中断。Joao的区域设置编号格式要好得多。