尝试通过删除Int数组中的前导零来合并数字.
int[] array = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5 };
for (int i = 0; i < arr.length; i++) {
String.format("%09d", array[i]);
}
for (int i = 0; i < arr.length; i++) {
System.out.print(array[i]);
}
Run Code Online (Sandbox Code Playgroud)
期望的输出:
405
Run Code Online (Sandbox Code Playgroud)
由于数组具有固定大小,因此无法从数组中删除任何元素.因此,我假设你想要一个没有前导零的新数组.
使用Java 9+(dropWhileJava 8中不存在),您可以这样做:
int[] array = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5 };
int[] withoutLeadingZeros = Arrays.stream(array).dropWhile(i -> i == 0).toArray();
System.out.println(Arrays.toString(withoutLeadingZeros)); // [4, 0, 5]
Run Code Online (Sandbox Code Playgroud)
编辑
如果结果是String:
String withoutLeadingZeros = Arrays.stream(array).dropWhile(i -> i == 0).collect(StringBuilder::new, StringBuilder::append, (l, r) -> l.append(r)).toString();
System.out.println(withoutLeadingZeros); // 405
Run Code Online (Sandbox Code Playgroud)
编辑
如果结果是int:
int number = Arrays.stream(array).reduce((l, r) -> l * 10 + r).getAsInt();
System.out.println(number); // 405
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
693 次 |
| 最近记录: |