binaryStr = "0".repeat(padLength) + binaryStr; 改用java8写
时间: 2024-03-11 14:47:52 浏览: 109
好的,如果你使用的是 Java 8,那么可以使用 `String.join` 方法来替代 `repeat` 方法,具体代码如下:
```java
int decimalNum = 10; // 要转换的十进制数
String binaryStr = Integer.toBinaryString(decimalNum); // 转换成二进制字符串
int padLength = 4 - binaryStr.length() % 4; // 计算需要补几个零
if (padLength != 4) {
binaryStr = String.join("", Collections.nCopies(padLength, "0")) + binaryStr; // 在字符串前面补零
}
// 将二进制字符串每 4 位分组,并用空格连接
binaryStr = binaryStr.replaceAll("(?<=\\G.{4})", " ");
```
其中,使用了 `Collections.nCopies` 方法生成一个包含 `padLength` 个 `"0"` 的不可变列表,然后再将它们连接起来,实现了字符串重复的效果。最终输出的结果与之前的示例相同:
```
1010
```
需要注意的是,`Collections.nCopies` 方法可能会占用较多的内存,因为它会在内存中存储多个相同的对象。如果需要重复的次数比较大,或者要重复的字符串比较长,建议使用其他方法来实现。
相关问题
java十进制转二进制用4位表示用java8写
好的,这里给出使用 Java 8 的代码示例,将十进制数转换为 4 位二进制数:
```java
int decimalNum = 10; // 要转换的十进制数
String binaryStr = Integer.toBinaryString(decimalNum); // 转换成二进制字符串
int padLength = 4 - binaryStr.length() % 4; // 计算需要补几个零
if (padLength != 4) {
binaryStr = "0".repeat(padLength) + binaryStr; // 在字符串前面补零
}
// 将二进制字符串每 4 位分组,并用空格连接
binaryStr = binaryStr.replaceAll("(?<=\\G.{4})", " ");
```
其中,`replaceAll` 方法使用了正则表达式,将二进制字符串每 4 位分组,并用空格连接。最终输出的结果如下:
```
1010
```
需要注意的是,`repeat` 方法是 Java 11 中新增的,如果你使用的是 Java 8,可以使用其他方法来实现字符串重复,例如使用 `String.join` 方法,具体可以参考我之前的回答。
阅读全文