我有两个byte [],我需要比较这个byte []之间的字符串,它是否需要显式转换new String(byte [])

时间:2014-04-21 05:14:31

标签: java string bytearray

我的目标是比较两个字节数组中的两个字符串值。它实际上需要创建两个新的字符串对象才能使用contains方法。它是正确的选择,还是有任何方法可以使用优化方式而无需使用新的关键字。

if(new String(bSourceStr).contains(new String(dest))) {
   return true;
} else {
   return false;
}

1 个答案:

答案 0 :(得分:1)

如果要比较包含基本类型值(如byte)的数组的实际内容,请使用Arrays.equals()

String str1="Hello";
String str2="Hello";
byte[] aa = str1.getBytes();
byte[] bb = str2.getBytes();
System.out.println(Arrays.equals(aa, bb));

使用Arrays.deepEquals比较包含对象的数组。

另外,您可以使用java.lang.Byte.compareTo(Byte anotherByte)以数字方式比较两个字节对象。看看这个 Java.lang.Byte.compareTo() Method