java - 分割数千java

标签 java regex formatting

我想通过在其中添加一些逗号来分割一些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,我想像解析字符串一样解析它,而不是数字(IntegerDouble)。我想我可以使用正则表达式或类似的东西,但我不知道该怎么做。

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/

相关文章:

r - 使用stringr提取连字符后的前四位数字

python - 在特定字符串开始后查找方括号外的文本

java - excel 中的日期格式与 apache poi

C++ sscanf 显示意外行为

java - Web 服务上的自定义 401 错误 (JBoss)

java - 安卓手机如何设置移动网络的dns?

java - 模拟器不运行 hello run 应用程序

Java 线程转储 : java. lang.Thread.State:WAITING(在对象监视器上)

java - java中JsonPath解析json错误

C++可以setw和setfill填充字符串的末尾吗?