Java ArrayList的(ArrayList).toString的反转是什么?

use*_*772 5 java string encoding arraylist tostring

我使用toString的方法ArrayList来存储ArrayList数据到一个字符串.我的问题是,我该如何走另一条路?是否存在将String实例中的数据解析为ArrayList?的现有方法?

lev*_*vik 8

最简洁的答案是不".没有简单的方法从String重新导入Object,因为toString()序列化中会丢失某些类型信息.

但是,对于特定格式和特定​​(已知)类型,您应该能够编写代码来手动解析String:

// Takes Strings like "[a, b, c]"
public List parse(String s) {
  List output = new ArrayList();
  String listString = s.substring(1, s.length() - 1); // chop off brackets
  for (String token : new StringTokenizer(listString, ",")) {
    output.add(token.trim());
  }
  return output;
}
Run Code Online (Sandbox Code Playgroud)

序列化形式重新构造对象通常称为反序列化

  • 当然,只有在字符串本身不包含逗号字符时才会起作用,这是我的响应中的第一点. (3认同)