serialize a list of string and deserialize it

来源:互联网 发布:淘宝金丝绒太极服 编辑:程序博客网 时间:2024/06/06 08:34
import java.util.*;public class combineStrings{    public static void main(String[] args) {                String[] arr = {"abc%cde", "a#aa", "haha"};                for(String s : arr) {                        System.out.println(s);                }                String result = serialize(arr);                System.out.println(result);                String[] newArr = deserialize(result);                for(String s : newArr) {                        System.out.println(s);                }        }        public static String serialize(String[] arr) {                StringBuilder sb = new StringBuilder();                sb.append(arr.length + "#");                for (String s : arr) {                        sb.append(s.length() + "%");                }                for (String s : arr) {                        sb.append(s);                }                return sb.toString();        }        public static String[] deserialize(String s) {                String[] sizeAndContent = s.split("#");                //could be splitting to 2                int len = Integer.parseInt(sizeAndContent[0]);                s = s.substring(sizeAndContent[0].length()+1);                String[] eachSize = s.split("%");                int[] size = new int[len];                int total = 0;                for (int i = 0; i < len; i++) {                        size[i] = Integer.parseInt(eachSize[i]);                        total += size[i];                }                String content = s.substring(s.length() - total, s.length());                String[] result = new String[len];                for (int i = 0; i < len; i++) {                        result[i] = content.substring(0, size[i]);                        content = content.substring(size[i]);                }                return result;        }}
0 0
原创粉丝点击