摘自本网站: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
答案 0 :(得分:1)
byte[] bytes
构造函数将解析包含的数据,正如@khelwood所说的那样,数字是字母的ASCII表示,因此80表示'p'字符。
如果您想要输出,则应使用
String[] srtArray = {"P","A"...}
String[] srtArray = {"80","65"...}
如果是{ 'P', 'A'...}
,它们已经被编码,但数字将被转换,因为它们被声明为numbers
而不是string
。 “80”与80不同。
答案 1 :(得分:0)
试试这段代码:
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);
}
} 节目输出