输入1000
输出1,000
是字符串类型,三位隔开
public static void main(String[] args) {
System.out.println(useCommasToCutString("1234567891234567", 3));
//1,234,567,891,234,567
}
/**
*
* @param str 被切割的字符串 1999999
* @param interval 每几个字符切割一次 3
* @return 1,999,999
*/
private static String useCommasToCutString(String str, int interval) {
return new StringBuilder(new StringBuilder(str).reverse()
.chars().boxed()
.collect(ArrayList::new,
(lists, integer) -> {
if (lists.isEmpty() || lists.get(lists.size() - 1).size() == interval) {
final ArrayList<Integer> ls = new ArrayList<>();
ls.add(integer);
lists.add(ls);
} else {
lists.get(lists.size() - 1).add(integer);
}
}, (BiConsumer<List<List<Integer>>, List<List<Integer>>>) (lists, lists2) -> {
}).stream().map(s -> s.stream().map(k -> Character.toString((char) (k.intValue())))
.collect(Collectors.joining()))
.collect(Collectors.joining(","))).reverse().toString();
}