0

帮助!

String all = "1.10.2";
String[] allArray = all.split("[.]");

我想要做的是将字符串“1.10.2”转换为 000010001000002 作为整数。00001 00010 00002 因此进行填充并将每个数字制作为 5 位数字并将它们组合为一个整数。split() 之后我应该做什么?

4

1 回答 1

1

你可以像这样使用 split 来做到这一点:

String[] allArray = all.split("\\.");
for (int i = 0; i < allArray.length; ++i) {
  String padding = "0".repeat(5 - allArray[i].length());
  allArray[i] = padding + allArray[i];
}
String padded = String.join("", allArray);

你可以用这样的流来做到这一点:

String padded = Arrays.stream(all.split("\\."))
    .map(s -> "0".repeat(5 - s.length()) + s)
    .collect(Collectors.joining(""));

您也可以在不显式拆分的情况下执行此操作,例如:

String padded =
    Pattern.compile("(?:^|\\.)([^.]+)").matcher(all)
        .replaceAll(mr -> "0".repeat(5 - mr.group(1).length());
于 2021-09-27T08:12:53.550 回答