如何将字节数组的内容分割成字符串数组?

SSSSSSSddfe3f3r3 2013-02-15 06:10:18
如何将字节数组的内容分割成字符串数组?


例如 有 字节数组内容是 : 123 0xff0xff 456 oxffoxff 789

用 0xff0xff 作为 分割符 ,分割后放在字符串数组中 例如 : str[0]="123" str[1]="456" str[2]="789"

...全文
274 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mourinho 2013-02-16
  • 打赏
  • 举报
回复

import java.util.Arrays;

public class Test {

	public static void main(String[] args) {	
		byte[] arr = { 1, 2, 3, (byte) 0xFF, (byte) 0xFF, 4, 5, 6, (byte) 0xFF,
				(byte) 0xFF, 7, 8, 9 };		
		System.out.println(Arrays.toString(fun1(arr)));
		System.out.println(Arrays.toString(fun2(arr)));
	}

	static String[] fun1(byte[] arr) {
		String flag = "\n";
		StringBuilder sb = new StringBuilder();
		for (byte b : arr) {
			if (b != (byte) 0xFF) {
				sb.append(Byte.toString(b));
			} else {
				sb.append(flag);
			}
		}
		String[] result = sb.toString().split(flag + flag);
		return result;
	}

	static String[] fun2(byte[] arr) {
		byte flag = (byte) 0xFF;
		int count = 0;
		for (byte b : arr) {
			if(b == flag) ++count;
		}
		String[] result = new String[count / 2 + 1];
		for(int i = 0;i < result.length;++i){
			result[i] = "";
		}
		for(int i = 0,j = 0;i < arr.length;++i){
			if(arr[i] != flag) result[j / 2] += Byte.toString(arr[i]);
			else ++j;
		}
		return result;
	}
}

大雨大雨大雨 2013-02-15
  • 打赏
  • 举报
回复
public class Demo { public static void main(String[] args) { String str="123 0xff0xff 456 0xff0xff 789 "; String[] temp=str.split(" "); StringBuilder sb=new StringBuilder(); for (int i = 0; i < temp.length; i++) { sb.append(temp[i]); } String newStr=sb.toString(); String[] result=newStr.split("0xff0xff"); for(String re:result) { System.out.println(re); } } }
maxcai 2013-02-15
  • 打赏
  • 举报
回复
String[10] result; byte[] arr = {1,2,3, 0xff,0xff ,4,5,6 ,oxff,oxff ,7,8,9 }; int j =0; for (int i = 0; i < arr.length; i++){ if((int) arr[i] == (int) oxff) j++; else { result[j] += (int) arr[i]; } }

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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