作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想转换以下代码以使用 Lambda 和 Streams 和/或任何其他 Java 8 功能。
我是 Java 8 的新手,尝试将以下代码转换为 Java 8,但找不到任何像“forEach”这样适合我的场景的函数。
private String getMacAddress() {
InetAddress ip;
try {
ip = InetAddress.getLocalHost();
logger.log(LogLevel.LEVEL_INFO,"Current IP address : " + ip.getHostAddress());
NetworkInterface network = NetworkInterface.getByInetAddress(ip);
byte[] mac = network.getHardwareAddress();
logger.log(LogLevel.LEVEL_INFO,"Current MAC address : ");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < mac.length; i++) {
sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
}
return sb.toString();
} catch (UnknownHostException e) {
logger.log(LogLevel.LEVEL_ERROR,e.getMessage());
} catch (SocketException e){
logger.log(LogLevel.LEVEL_ERROR,e.getMessage());
}
}
最佳答案
将字节数组转换为整数流。从那时起,您可以使用流函数将它们映射到正确的格式并连接它们。
ByteArrayInputStream inputStream = new ByteArrayInputStream(mac);
IntStream intStream = IntStream.generate(inputStream::read)
.limit(inputStream.available());
String result = intStream .mapToObj(b -> { return String.format("%02X",(byte)b);} )
.collect(Collectors.joining("-"));
关于java - 如何在 Java 8 中循环遍历字节数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59417677/
我是一名优秀的程序员,十分优秀!