Java 数组输出令人困惑

标签 java arrays string

取自此网站: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/

相关文章:

java - Spring jdbc模板如何解密密码?

java - 如何为Spring中@Valid注释抛出的错误消息创建属性文件

arrays - 从数组 spritekit swift 中删除节点

c - 请解释以下 C 程序的输出。

java - 如何在另一个 Java 类中存储带有变量的字符串?

java - Liferay 使用 PostgreSQL?

java tomcat6 : javax. ws丢失

javascript - 获取 JavaScript 对象键列表卷。 2个

java - Count of most occurring digit...找到给定数字中出现次数最多的数字

javascript - 如何在文本文件中的两个句子之间找到特定的单词