Java 可以将字节01设置为值
这里有一个小程序Java 可以将字节01设置为值,java,Java,这里有一个小程序 public class example { private byte b1; public byte getB1() { return b1; } public void setB1(byte b1) { this.b1 = b1; } public static void main(String[] args) { final byte a = 01; example e
public class example {
private byte b1;
public byte getB1() {
return b1;
}
public void setB1(byte b1) {
this.b1 = b1;
}
public static void main(String[] args) {
final byte a = 01;
example e = new example();
e.setB1(a);
System.out.println(e.getB1());
}
}
此程序返回值为1而不是01,但是,我希望它是01(已设置)
如果设置了01,如何从字节中获取01输出。您需要区分文本表示和固有值 我37岁了。我也是0x25岁和045岁(八进制)-它们是相同的数字,以不同的表示形式。数字本身没有表示的概念
如果您想以特定的方式将字节转换为字符串,则应将其作为格式化的一部分进行转换,因为它不是与字节关联的数据的一部分。无论您如何初始化,该值都是相同的。
01==1==001==00000001
,它们都是相同的值。如果要更改打印方式,则需要更改打印语句
System.out.printf("%02d%", e.getB1()); // print a leading zero.
a
和b1
以及getB1
的返回值是数字,01
和1
是相同的数字,即一。如果您想保留零,可以将其更改为字符串,但不能再使用它们进行计算。请尝试下面的另一种方法
import java.text.DecimalFormat;
public class example {
private byte b1;
public byte getB1() {
return b1;
}
public void setB1(byte b1) {
this.b1 = b1;
}
public static void main(String[] args) {
final byte a = 1;
example e = new example();
e.setB1(a);
DecimalFormat df = new DecimalFormat("00");
System.out.println( df.format(e.getB1()));
}
}
试试下面
public static void main(String[] args) {
final byte a = 01;
example e = new example();
e.setB1(a);
System.out.println(String.format("0%d", e.getB1()));
}
您需要更改打印语句。类似下面的System.out.print(“%02d%”,e.getB1());字节是一个数字,它不包含格式信息。所以1==0x01==001(八进制)==0b00000001。@Marounnaroun它与ESC字符相同,现在您只是FS;)@Jon,如果我想将字节值存储为01,例如在DB2数据库中,如果字段是smallint,我想存储01而不是1,那么如何将smallint值设置为01(byte)@Rakesh:你不能。它们的价值基本相同。如果您关心数据的文本表示,那么应该存储一个字符串。谢谢,它可以用于显示。但是,如果01需要存储在DB中(在DB2中针对smallint),那么如何设置01?@Rakesh smallint就像Java中的一个short,它没有前导0。前导0仅用于格式化。