說明
利用ByteBufUtil的indexOf(ByteBuf needle, ByteBuf haystack)函數可以在haystack中尋找needle出現的位置。如果沒有找到,返回-1。
示例
在一個ByteBuf 中找到了另外一個ByteBuf
package com.thb;import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import io.netty.buffer.Unpooled;public class Test {public static void main(String[] args) {// 創建一個ByteBufByteBuf buf = Unpooled.buffer();buf.writeByte(22);buf.writeByte(22);buf.writeByte(22);buf.writeByte(104);buf.writeByte(22);// 創建一個包裹數組的ByteBufByteBuf buf2 = Unpooled.wrappedBuffer(new byte[] {104, 22});// 在buf中查找buf2int index = ByteBufUtil.indexOf(buf2, buf);System.out.println(index);}}
運行輸出:
在一個ByteBuf 中沒有找到另外一個ByteBuf
package com.thb;import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import io.netty.buffer.Unpooled;public class Test {public static void main(String[] args) {// 創建一個ByteBufByteBuf buf = Unpooled.buffer();buf.writeByte(22);buf.writeByte(22);buf.writeByte(22);buf.writeByte(104);buf.writeByte(22);// 創建一個包裹數組的ByteBufByteBuf buf2 = Unpooled.wrappedBuffer(new byte[] {104, 22, 22});// 在buf中查找buf2int index = ByteBufUtil.indexOf(buf2, buf);System.out.println(index);}}
運行輸出: