我正在读取文件,如果小于10,我想打印2位数的字节值(例如,如果字节= 1则应该显示字节= 01),我不想像这样比较:< / p>
if(byte<10){
stringBuffer buf= new stringBuffer();
buf.append("0"+byte);
}
是否有任何内置方法来执行此操作,就像vc ++中的格式函数一样?
由于 gagana
答案 0 :(得分:5)
怎么样:
String twoDigits = String.format("%02d", myByte);
它更接近C语言的做法,而不是必须实例化你自己的格式化程序。
答案 1 :(得分:3)
您可以使用DecimalFormat
:
NumberFormat nf = new DecimalFormat("00");
buf.append(df.format(byteArray[i]));
显然你只是在循环之外实例化它。
答案 2 :(得分:3)
System.out.println(new DecimalFormat("00").format(9));
为我打印09。
答案 3 :(得分:2)
答案 4 :(得分:1)
答案 5 :(得分:1)
'a'是十六进制格式的10。
因此,请将格式字符串从“%02x”更改为“%02d”
答案 6 :(得分:0)
查看Formatter班级
答案 7 :(得分:0)
byte b = ...
System.out.println(String.format("%02x",b));
答案 8 :(得分:0)
对于b的“小”值,这应该没问题:
String s = "" + b;
while(s.length() < 2) {
s = "0" + s;
}
答案 9 :(得分:0)
我对java语法不太方便......但是这里有一种方法......可能你需要找到适合java的equalant
buf.append(右((“00”+字节),2))