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 は 16 進出力を意味します

s は文字列を意味します

そのため、2 桁の 16 進数とそれに続く文字列を出力しています。Formatter の javadoc が少し分厚いことは承知していますが、これが本来の目的です。

于 2012-12-11T12:21:05.017 に答える