Java数组输出混乱
摘自本网站: 为什么输出是: 潘卡吉 潘卡吉 我看不出这是怎么回事: 潘卡吉 806578756574 byte[]bytes构造函数将解析包含的数据,正如@khelwood所说,数字是字母的ASCII表示形式,因此80表示一个“p”字符 如果您想要您想要的输出,您应该使用Java数组输出混乱,java,arrays,string,Java,Arrays,String,摘自本网站: 为什么输出是: 潘卡吉 潘卡吉 我看不出这是怎么回事: 潘卡吉 806578756574 byte[]bytes构造函数将解析包含的数据,正如@khelwood所说,数字是字母的ASCII表示形式,因此80表示一个“p”字符 如果您想要您想要的输出,您应该使用 String[] srtArray = {"P","A"...} String[] srtArray = {"80","65"...} 在{'p','A'…}的情况下,它们已经被编码,但是数字将被转换,因为它们被表示为数字
String[] srtArray = {"P","A"...}
String[] srtArray = {"80","65"...}
在{'p','A'…}的情况下,它们已经被编码,但是数字将被转换,因为它们被表示为数字而不是字符串。80与80不同。请尝试以下代码:
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);
for (byte b : byteArray1) {
System.out.print(b);
}
//System.out.println(str1);
}
}
程序输出80与80不同。字符串构造函数接收字节数组并将其解释为字符。字节80代表字符“P”等。当您将字节数组转换为字符串时,ASCII码在引擎盖下使用。我有一个线索,就是这样。感谢您帮助我了解如何识别它。通常不鼓励只使用代码的答案。相反,在旁边贴一个深入的解释。
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);
for (byte b : byteArray1) {
System.out.print(b);
}
//System.out.println(str1);
}