Java -搜索字符串的字节码



我已经尝试了许多搜索来找到一种方法来搜索字节码字符串。下面是一个例子:

String stringThatHasBytes = "hello world hello world[B@9304b1";
If stringThatHasBytes . Does have bytes {
return true or false
}

是否有一种方法可以搜索字符串的字节?

总之,你不能这么做。因为每输出一个字节,它的输出都会改变。打印出字节并不会打印出实际的字节,如果你想要精确的字节比较,那么它是没有意义的。

但是,如果您只在字符串中查找任何字节打印,则只需控制字符串中的[B@ s并返回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 "";
    }
}

对你来说是不是太简单了?

boolean hasBytes = str.contains("[B@");

如果是的话,让我知道我会给你展示一些好的正则表达式!但这应该足够了。

查看是否有帮助

        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)));

相关内容

  • 没有找到相关文章

最新更新