我知道在Java中我们有字节流和字符流。令人困惑的是如何直接在输出语句中显示字节值。
例如,我在控制台中输入我的名字,然后使用:
BufferedReader br=new BufferedReader(new InputStreamReader(System.in)) ;
String name=br.readLine();
如果我显示名称,我会得到我输入的值。如何以字节值显示它?
答案 0 :(得分:0)
如果你的意思是原始字节:
BufferedReader br=new BufferedReader(new InputStreamReader(System.in)) ;
String name=br.readLine();
System.out.write(name.getBytes("UTF-8"));
请注意,输出取决于您选择的特定编码(在本例中为UTF-8)。
如果你想为每个字节打印一个可读的十六进制值,你将需要对上面的代码进行一些处理,但它应该是直截了当的。
答案 1 :(得分:0)
尝试使用UTF-8编码的字节:
byte [] bytes = name.getBytes("UTF-8");
for( int i=0; i < bytes.length ;++i)
System.out.println(bytes[i]);
答案 2 :(得分:0)
如果要将UTF-8字节值显示为十六进制(将原始字节数据表示为字符串的便捷方式),可以执行此操作。
String name=br.readLine();
String nameUTF8Hex = DatatypeConverter.printHexBinary(name.getBytes("UTF-8"));
System.out.println(nameUTF8Hex);
的详细信息