byte[] 数组的转义编/解码,如把0x5E,0x5D 来代替 0x5E;0x5E, 0x7D 来代替 0x7E

白羊座的傻猫 2017-07-22 09:54:22
传进一个byte数组,如
byte[] originalBytes = new byte[]{0x34, 0x5E, 0x5D, 0x7D, 0x73, 0x7E, 0x7D, 0x5e, 0x7D};

要求:

public class ByteEscapeHelperTest {
...
ByteEscapeHelper byteEscapeHelper = new ByteEscapeHelper();
byteEscapeHelper.addRule((byte)0x5e, new byte[]{0x5E, 0x5D});
byteEscapeHelper.addRule((byte)0x7e, new byte[]{0x5E, 0x7D});
...
}
public class ByteEscapeHelper {

private List<Byte> originalByteList = new ArrayList<Byte>();
private List<byte[]> escapedBytesList = new ArrayList<byte[]>();

public ByteEscapeHelper() {
}

public void addRule(byte originalByte, byte[] escapedBytes){
originalByteList.add(originalByte);
escapedBytesList.add(escapedBytes);
}

/**
* 转义编码.
* 0x5E变为0x5E,0x5D
* 0x7E变为0x5E,0x7D
*/
public byte[] escapeBytes(byte[] originalBytes){
// 输出:34 5e 5d 5d 7d 73 5e 7d 7d 5e 5d 7d
}

/**
* 转义解码
* 0x5E,0x5D 变为0x5E
* 0x5E,0x7D 变为0x7E
*/
public byte[] unescapeBytes(byte[] escapedBytes){
// 输出:34 5e 7d 73 7e 7d 7e
}
}

大佬们有没有高效的算法,尽量用较少的循环来实现
...全文
1094 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
邪恶的鱼蛋 2019-08-15
  • 打赏
  • 举报
回复
你好,可以给出详细代码嘛。
潇湘如梦 2017-07-26
  • 打赏
  • 举报
回复
啥意思,没看懂要求

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧