serialize a list of string and deserialize it
2015-09-17 00:46
441 查看
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; } }
相关文章推荐
- 9-13号作业
- hdu1852
- [备份] 手机密码方案数
- CentOS 7 安装mysql
- js继承
- Mac OS X中启动MySQL报错:ERROR! The server quit without updating PID file
- C++11之lambda表达式
- 解决eclipse“copy项目重命名后重新发布,项目名在地址栏仍然是原来的项目名”的问题
- 关于block使用的5点注意事项
- 即时演讲
- uva 540
- mac上用docker,不需要加sudo
- 关于CXF整合Spring时出现jaxws.xsd无法找到的问题
- SPOJ Query on a tree (树链剖分)
- Android常用知识点总汇
- 部分android小知识点记录
- xml读取类
- Android LinearLayout中TextView标签项自动换行的一种解决方案
- hdu 4751 Divide Groups(dfs染色 或 2-sat)
- C语言实现静态链表