Java 如何打印一个字节和一个字符串?

Java 如何打印一个字节和一个字符串?,java,byte,printf,output,system.out,Java,Byte,Printf,Output,System.out,我有一个字节: byte STX = 0x02; 使用printf按原样打印会返回0x02,这正是我想要的: System.out.printf("0x%02X", STX); 但是,我想用如下或类似的字符串连接它: System.out.println("Found " + STX + " at " + i); 但它返回整数值。因此,如何打印字节并将其与字符串连接?使用: 使用: 试着这样做: System.out.println(“Found”+String.format(“0x%0

我有一个字节:

byte STX = 0x02;
使用
printf
按原样打印会返回
0x02
,这正是我想要的:

System.out.printf("0x%02X", STX);
但是,我想用如下或类似的字符串连接它:

System.out.println("Found " +  STX + " at " + i);
但它返回整数值。因此,如何打印字节并将其与字符串连接?

使用:

使用:

试着这样做:

System.out.println(“Found”+String.format(“0x%02X”,STX)+“at”+i)

或者更好:

System.out.println(String.format(“在%d处找到0x%02X”,STX,i))

或者更好:

System.out.printf(“在%d%n处找到0x%02X”,STX,i)

请尝试以下方法:

System.out.println(“Found”+String.format(“0x%02X”,STX)+“at”+i)

或者更好:

System.out.println(String.format(“在%d处找到0x%02X”,STX,i))

或者更好:


System.out.printf(“在%d%n处找到0x%02X”,STX,i)

不幸的是,这实际上是一个现有答案的副本,被否决了。。。但正如你现在的评论所表明的,你会欢迎这样的选择

您可以使用
printf
格式化整个字符串:

这里的
0x%02X
是您已经知道的部分;
%d
i
的格式说明符;
%n
是特定于平台的换行符

我发现在语句中使用一种格式更为清晰:要么
printf
/
String.format
格式,要么字符串串联,而不是两者的混合

如果您不想在控制台上打印格式,只需使用:

(假设在这种情况下不需要行分隔符。)


有关格式字符串中的所有选项,请参见。

不幸的是,这实际上是已被否决的现有答案的副本。。。但正如你现在的评论所表明的,你会欢迎这样的选择

您可以使用
printf
格式化整个字符串:

这里的
0x%02X
是您已经知道的部分;
%d
i
的格式说明符;
%n
是特定于平台的换行符

我发现在语句中使用一种格式更为清晰:要么
printf
/
String.format
格式,要么字符串串联,而不是两者的混合

如果您不想在控制台上打印格式,只需使用:

(假设在这种情况下不需要行分隔符。)


有关格式字符串中的所有选项,请参见。

是否有任何原因不想一直使用
printf
?我发现对整个字符串使用一种格式更为清晰——要么一直采用串联格式,要么一直采用
printf
——格式。原因是我不知道如何使用!如果有办法一直到System.out.printf,请告诉我!是否需要前导零的填充?STX的字节值为“0x2”。您可以通过在格式字符串中使用
%#2x
来进一步清理格式,该格式字符串的输出值为
0x2
,您有什么理由不想一直使用
printf
?我发现对整个字符串使用一种格式更为清晰——要么一直采用串联格式,要么一直采用
printf
——格式。原因是我不知道如何使用!如果有办法一直到System.out.printf,请告诉我!是否需要前导零的填充?STX的字节值为“0x2”。您可以通过在格式字符串中使用
%#2x
来进一步清理格式,该格式字符串的输出值将为
0x2
System.out.printf
可以在一次调用中同时执行这两个操作时,为什么在System.out.println中使用string.format?因为在某个时间点处理代码库的人会忘记添加“%n”而且会像我上面说的那样弄乱任何打印输出。现在添加%n。当
System.out.printf
可以在一次调用中同时执行这两项操作时,为什么要在System.out.println中使用String.format?因为在某个时间点处理代码库的人会忘记添加“%n”,并会像我一样弄乱任何打印输出。正在添加%n。
System.out.println("Found " +  String.format("0x%02X", STX) + " at " + i);
System.out.printf("Found 0x%02X at %d%n", STX, i);
String text = String.format("Found 0x%02X at %d", STX, i);