Netty:在一个ByteBuf中寻找另外一个ByteBuf出现的位置

说明

利用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) {
		// 创建一个ByteBuf
		ByteBuf buf = Unpooled.buffer();
		buf.writeByte(22);
		buf.writeByte(22);
		buf.writeByte(22);
		buf.writeByte(104);
		buf.writeByte(22);
		
		// 创建一个包裹数组的ByteBuf
		ByteBuf buf2 = Unpooled.wrappedBuffer(new byte[] {104, 22});
		// 在buf中查找buf2
		int 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) {
		// 创建一个ByteBuf
		ByteBuf buf = Unpooled.buffer();
		buf.writeByte(22);
		buf.writeByte(22);
		buf.writeByte(22);
		buf.writeByte(104);
		buf.writeByte(22);
		
		// 创建一个包裹数组的ByteBuf
		ByteBuf buf2 = Unpooled.wrappedBuffer(new byte[] {104, 22, 22});
		// 在buf中查找buf2
		int index = ByteBufUtil.indexOf(buf2, buf);
		System.out.println(index);

	}

}

运行输出:

在这里插入图片描述

你可能感兴趣的:(java,开发语言,Netty)