取自此网站:https://www.journaldev.com/770/string-byte-array-java
package com.journaldev.util;
public class ByteArrayToString {
public static void main(String[] args) {
byte[] byteArray = { 'P', 'A', 'N', 'K', 'A', 'J' };
byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };
String str = new String(byteArray);
String str1 = new String(byteArray1);
System.out.println(str);
System.out.println(str1);
}
}
为什么输出是:
PANKAJ
PANKAJ
我不明白为什么不是:
PANKAJ
806578756574
最佳答案
byte[] bytes
构造函数将解析包含的数据,正如 @khelwood 所说,它的注释是,数字是字母的 ASCII 表示形式,因此 80 代表“p”字符。
如果你想要你想要的输出,你应该使用
String[] srtArray = {"P","A"...}
String[] srtArray = {"80","65"...}
对于{ 'P', 'A'...}
,它们已经被编码,但数字将被转换,因为它们被声明为数字
并且不是字符串
。 “80”与 80 不同。
关于Java 数组输出令人困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50300066/