如何使用字节数组从String.format获取格式化的字符串?格式化字符串特别是什么意思?

sap*_*Pro 0 java bytearray string-formatting

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);    
Run Code Online (Sandbox Code Playgroud)

它打印出我的界面看起来像的MAC地址:

70-F1-A1-A1-DF-F5
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我解释一下这一步:

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

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

arc*_*rcy 6

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

%启动格式规范

0表示左键盘为零

2表示2位数宽

X表示十六进制输出

s表示字符串

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