我尝试了很多搜索来找到一种搜索字符串字节代码的方法。这是一个例子:
String stringThatHasBytes = "hello world hello world[B@9304b1";
If stringThatHasBytes . Does have bytes {
return true or false
}
是否有可以在字符串中搜索字节的方法?
答案 0 :(得分:0)
简而言之,你不能这样做。因为每次打印时字节的打印都会更改。打印出字节不会打印实际的字节,如果你正在寻找字节的精确比较,那就没有意义了。
但是,如果只查找字符串中的任何字节打印,只需控制字符串中的[B@
并返回true。
String stringThatHasBytes = "hello world hello world[B@9304b1";
if (stringThatHasBytes.indexOf("[B@") >= 0)
return true;
} else return false;
修改强>
如果您需要以有意义的方式打印字节,则应将字节转换为一些有意义的文本,例如:
public static String convertByteArrayToHexString(byte[] b) {
if (b != null) {
StringBuilder s = new StringBuilder(2 * b.length);
for (int i = 0; i < b.length; ++i) {
final String t = Integer.toHexString(b[i]);
final int l = t.length();
if (l > 2) {
s.append(t.substring(l - 2));
} else {
if (l == 1) {
s.append("0");
}
s.append(t);
}
}
return s.toString();
} else {
return "";
}
}
答案 1 :(得分:0)
看看这个帮助
byte[] myByteArray = new byte[5];
myByteArray[0] = 'a';
myByteArray[1] = 'b';
myByteArray[2] = 'c';
myByteArray[3] = 'd';
myByteArray[4] = 'e';
for (byte x : myByteArray)
System.out.println(x);
String myString = "abcde";
System.out.println(myString.equals(new String(myByteArray)));
答案 2 :(得分:0)
包含太简单的答案了吗?
boolean hasBytes = str.contains("[B@");
如果是这样,请告诉我,我会告诉你一些好的正则表达!但这应该足够了。