String s = "1081+34-3954";
Pattern p = Pattern.compile("(\\d+)([/*+-]|$)");
Matcher m = p.matcher(s);
StringBuilder sb = new StringBuilder();
while (m.find()) {
sb.append(String.format("%,d%s", Integer.valueOf(m.group(1)), m.group(2)));
}
String result = sb.toString();
System.out.println(result);
3条答案
按热度按时间7d7tgy0s1#
您可以使用regex替换,通过搜索数字,然后解析和重新格式化它们。
在java 9+中,执行以下操作:
任何不是4+位数字的文本都保持不变。
在旧的java版本中,使用替换循环:
pgpifvop2#
你可以用正则表达式这样做。
(\\d+)
-捕获整型的块1。([+-]|$)
-为操作员或生产线末端捕获块2印刷品
r1zk6ea13#
您可以只使用简单的string和stringbuilder方法: