我必须拆分这个字符串:

00016282000079116050

它有预定义的块。应该是这样的:
00016 282 00 0079 116 050

我做了这个代码:
String unformatted = String.valueOf("00016282000079116050");
String str1 = unformatted.substring(0,5);
String str2 = unformatted.substring(5,8);
String str3 = unformatted.substring(8,10);
String str4 = unformatted.substring(10,14);
String str5 = unformatted.substring(14,17);
String str6 = unformatted.substring(17,20);

System.out.println(String.format("%s %s %s %s %s %s", str1, str2, str3, str4, str5, str6));

它有效,但我需要使此代码更美观/更漂亮。

带有 Java 8 流或正则表达式的东西应该很好。有什么建议么?

最佳答案

更面向 java 的方法是使用循环和预定义长度的数组。

int[] lims = {5,3,2,4,3,3};
int total = 0;
String original = "00016282000079116050";

for (int i = 0 ; i < lims.length ; i++) {
    System.out.print(original.substring(total, total+=lims[i]) + " ");
}

输出
00016 282 00 0079 116 050

关于java - 使用 java/更好的代码将字符串拆分为多个部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37758567/

10-10 11:10