我想通过在其中添加一些逗号来分割一些String
。
例如:
"1234" => "1,234"
"12345" => "12,345"
"123456" => "123,456"
"1234567" => "1,234,567"
"12345678" => "12,345,678"
"123456789" => "123,456,789"
我可以有这样一个巨大的字符串,如“123456789123456789123456789123456789123456789”
目前,我将此代码与DecimalFormat
一起使用,但因为我转换为double,所以我的数字被限制在Double的范围内,所以我需要找到另一种方法来避免这个范围。我收到一个 String
,我想像解析字符串一样解析它,而不是数字(Integer
、Double
)。我想我可以使用正则表达式或类似的东西,但我不知道该怎么做。
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator(',');
DecimalFormat df = new DecimalFormat("###,###", symbols);
formattedStr = df.format(Double.parseDouble(str));
最佳答案
要么使用其他答案中提到的BigInteger
,要么使用正则表达式,如下所示:
public class Test {
public static void main(String[] args) {
String s = "12345678912345678912345678";
String formatted = s.replaceAll("(\\d)(?=(\\d{3})+$)", "$1,");
System.out.println(formatted); // 12,345,678,912,345,678,912,345,678
}
}
该表达式将在所有数字后面附加一个逗号,且后跟至少一组 3 位数字。
关于java - 分割数千java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55486530/