编码的形式就是:字符串的长度 + 字符串
字符串的长度转化为byte数组,四位的数组
public class test {
public String encode(List<String> strs){
StringBuilder sb = new StringBuilder();
for(String s : strs){
sb.append(intToString(s));
sb.append(s);
}
return sb.toString();
}
public String intToString(String s){
int x = s.length();
char[] bytes = new char[4];
for(int i = 3; i > 0; i--){
bytes[3 - i] = (char)(x >> i*8 & 0xff);
}
return new String(bytes);
}
public List<String> decode(String s){
int i = 0;
int n = s.length();
List<String> output = new ArrayList<>();
while(i<n){
int length = stringToInt(s.substring(i,i+4));
i += 4;
output.add(s.substring(i,i+length));
i += length;
}
return output;
}
public int stringToInt(String byteStr){
int result = 0;
for(char b : byteStr.toCharArray()){
result = (result << 8) + (int)b;
}
return result;
}
}