gpt4 book ai didi

java - 使用未初始化的字节数组单元构造的字符串的比较

转载 作者:行者123 更新时间:2023-12-02 06:53:49 25 4
gpt4 key购买 nike

one I asked long time ago 的后续行动,我正在尝试从字节数组构造字符串,该数组可能不会将所有单元格设置为特定值(参见下面的代码)。看起来,如果一个 String 是从类似的字节数组构造的,则已分配但未设置的字节仍然计数,从而使比较(使用 equals())失败。

看,

public class Test{
public static void main(String[] args){
byte[] b = new byte[10];
String s = "RESET ME";
for(int i = 0; i < 8; i++){
b[i] = (byte) s.charAt(i);
}
String s2 = new String(b);
System.out.println(s.equals(s2));
}
}

打印“false”。除了编写自己的比较器之外,是否有一种方法可以比较字符串,使其不考虑未设置的字节?

最佳答案

为什么不保持简单并使用String(bytes, offset, len)byte[]构建字符串?构造函数并完全避免包含未设置的字节:

String s2 = new String(b, 0, 8);

关于java - 使用未初始化的字节数组单元构造的字符串的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17675000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com