62,621
社区成员
发帖
与我相关
我的任务
分享
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;
}
}