0
byte mac[] = ni.getHardwareAddress();
StringBuilder sb = new StringBuilder();

sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));    

String macAdd = new String(sb);
System.out.println(macAdd);    

它打印出我的接口的 MAC 地址,如下所示:

70-F1-A1-A1-DF-F5

谁能解释一下步骤:

String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "")

特别是字符串是什么%02X%s意思?

4

1 回答 1

7

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html

% 开始一个格式规范

0 表示左填充零

2 表示 2 位宽

X 表示十六进制输出

s 表示字符串

所以我们输出一个两位十六进制数字,后跟一个字符串。我知道 Formatter javadoc 有点密集,但这确实是它的用途。

于 2012-12-11T12:21:05.017 回答