前置零到字节

时间:2009-09-02 13:38:18

标签: java

我正在读取文件,如果小于10,我想打印2位数的字节值(例如,如果字节= 1则应该显示字节= 01),我不想像这样比较:< / p>

    if(byte<10){
        stringBuffer buf= new stringBuffer();
        buf.append("0"+byte);
    }

是否有任何内置方法来执行此操作,就像vc ++中的格式函数一样?

由于 gagana

10 个答案:

答案 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))