Tôi đang sử dụng mã này để tìm địa chỉ MAC của máy. Mã này in trực tiếp địa chỉ MAC, nhưng tôi muốn trả về nó như một chuỗi. Tôi hoàn toàn bối rối.Định dạng mảng byte địa chỉ MAC thành chuỗi
vui lòng trợ giúp.
try {
InetAddress add = InetAddress.getByName("10.123.96.102");
NetworkInterface ni1 = NetworkInterface.getByInetAddress(add);
if (ni1 != null) {
byte[] mac1 = ni1.getHardwareAddress();
if (mac1 != null) {
for (int k = 0; k < mac1.length; k++) {
System.out.format("%02X%s", mac1[k], (k < mac1.length - 1) ? "-" : "");
}
} else {
System.out.println("Address doesn't exist ");
}
System.out.println();
} else {
System.out.println("address is not found.");
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (SocketException e) {
e.printStackTrace();
}
Nếu bạn cần trả về một chuỗi được định dạng theo cùng một cách, hãy sử dụng một StringBuilder và nối thêm nó vào một phần vòng lặp được định dạng bằng String.format (..). –
Xem http://stackoverflow.com/questions/311165/how-do-you-convert-byte-array-to-hexadecimal-string-and-vice-versa-in-c/632920#632920 – Zaki