Java 分裂数千爪哇
我想通过在字符串中添加一些逗号来拆分一些Java 分裂数千爪哇,java,regex,formatting,Java,Regex,Formatting,我想通过在字符串中添加一些逗号来拆分一些字符串。 例如: "1234" => "1,234" "12345" => "12,345" "123456" => "123,456" "1234567" => "1,234,567" "12345678" => "12,345,678" "123456789" => "123,456,789" 我可以有一个像“12345678912345678912345678912345678912345678912345678
字符串。
例如:
"1234" => "1,234"
"12345" => "12,345"
"123456" => "123,456"
"1234567" => "1,234,567"
"12345678" => "12,345,678"
"123456789" => "123,456,789"
我可以有一个像“123456789123456789123456789123456789123456789123456789123456789123456789”这样的大字符串
目前,我将此代码与DecimalFormat
一起使用,但由于我将其转换为double,因此我的数字限制在double的范围内,因此我需要找到另一种方法来避免此范围。我收到一个字符串
,我想像字符串一样解析它,而不是数字(整数
,双精度
)。我想我可以用正则表达式或类似的东西,但我不知道怎么做
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator(',');
DecimalFormat df = new DecimalFormat("###,###", symbols);
formattedStr = df.format(Double.parseDouble(str));
要获得如此巨大的数字,必须使用biginger或BigDecimal。此代码段应该可以帮助您:
public static void main(String[] args) {
BigInteger integer = BigInteger.valueOf(60000);
String result = NumberFormat.getNumberInstance(Locale.US).format(
integer);
System.out.println(result);
}
产量:6万
祝你好运。或者使用其他答案中提到的biginger
,或者使用正则表达式,如下所示:
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位数字。仅为整数?您稍后是否仅显示这些数字,或者是否正在使用它们?是的,但我可以有一个超过double范围的大数字,如12345678913456789123456789。这就是我需要改变的原因@RobbyCornelissen可以首先查看BigInteger类。当整数值对于long或int太大时,double不是一个好的解决方案。在字符串上向后迭代,并在每三个字符后插入一个逗号,以获得一个String。如何从字符串创建BigInteger?新建BigInteger(str)
这是可能的。使用构造函数BigInteger(String val)将字符串的数字表示形式转换为BigInteger。有关更多信息,请浏览java文档。