private static final String SEP1 = "#";
private static final String SEP2 = "|";
private static final String SEP3 = "=";
* List转换String
* @param list
* :需要转换的List
* @return String转换后的字符串
public static String ListToString(List<?> list) {
StringBuffer sb = new StringBuffer();
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i) == null || list.get(i) == "") {
continue;
// 如果值是list类型则调用自己
if (list.get(i) instanceof List) {
sb.append(ListToString((List<?>) list.get(i)));
sb.append(SEP1);
} else if (list.get(i) instanceof Map) {
sb.append(MapToString((Map<?, ?>) list.get(i)));
sb.append(SEP1);
} else {
sb.append(list.get(i));
sb.append(SEP1);
return "L" + sb.toString();
* Map转换String
* @param map
* :需要转换的Map
* @return String转换后的字符串
public static String MapToString(Map<?, ?> map) {
StringBuffer sb = new StringBuffer();
// 遍历map
for (Object obj : map.keySet()) {
if (obj == null) {
continue;
Object key = obj;
Object value = map.get(key);
if (value instanceof List<?>) {
sb.append(key.toString() + SEP1 + ListToString((List<?>) value));
sb.append(SEP2);
} else if (value instanceof Map<?, ?>) {
sb.append(key.toString() + SEP1
+ MapToString((Map<?, ?>) value));
sb.append(SEP2);
} else {
sb.append(key.toString() + SEP3 + value.toString());
sb.append(SEP2);
return "M" + sb.toString();
* String转换Map
* @param mapText
* :需要转换的字符串
* @param KeySeparator
* :字符串中的分隔符每一个key与value中的分割
* @param ElementSeparator
* :字符串中每个元素的分割
* @return Map<?,?>
public static Map<String, Object> StringToMap(String mapText) {
if (mapText == null || mapText.equals("")) {
return null;
mapText = mapText.substring(1);
mapText = mapText;
Map<String, Object> map = new HashMap<String, Object>();
String[] text = mapText.split("\\" + SEP2); // 转换为数组
for (String str : text) {
String[] keyText = str.split(SEP3); // 转换key与value的数组
if (keyText.length < 1) {
continue;
String key = keyText[0]; // key
String value = keyText[1]; // value
if (value.charAt(0) == 'M') {
Map<?, ?> map1 = StringToMap(value);
map.put(key, map1);
} else if (value.charAt(0) == 'L') {
List<?> list = StringToList(value);
map.put(key, list);
} else {
map.put(key, value);
return map;
* String转换List
* @param listText
* :需要转换的文本
* @return List<?>
public static List<Object> StringToList(String listText) {
if (listText == null || listText.equals("")) {
return null;
listText = listText.substring(1);
listText = listText;
List<Object> list = new ArrayList<Object>();
String[] text = listText.split(SEP1);
for (String str : text) {
if (str.charAt(0) == 'M') {
Map<?, ?> map = StringToMap(str);
list.add(map);
} else if (str.charAt(0) == 'L') {
List<?> lists = StringToList(str);
list.add(lists);
} else {
list.add(str);
return list;
利用Java自身类:
String abc = "aaa,bbb,ccc";
String[] arr = abc.split(",");
List<String> list = java.util.Arrays.aslist(abc);
调用方法://字符串转成list List list; String im = "123+456+789"; list = StringToList(im); //list转字符串 String str = ListToString("要转换的List");封装的类:private static final String SEP1 = "#"; p
1.先来第一个场景,做一个mmkv本地存储list,需要把集合转化成string进行传递,和把string转化成list的
将List集合转化成String进行存储
if (mVideoHistorySumList != null && mVideoHistorySumList.size() > 0) {
//存储历史列表 //对象类型转化成json串存储
String strHistoryList
目录一、数组转List集合二、List集合转数组
一、数组转List集合
String[] str = new String[] {"1", "2", "3"};
// String数组转List集合
List<String> list = Arrays.asList(str);
// log打印List集合
for (int i = 0; i < list.size(); i++) {
Log.i(TAG,"list: " + list.get(i));
asList()方
假设要处理的String变量为str1, 以下代码将把str1按照指定的分隔符一截一截地保存到ArrayList.
List<String> result_list = new ArrayList<String>(Arrays.asList(str1.split("\n")));
在使用的时候, 可以一截截地进行调用和使用, 类似如下:
for(int i = 0; i ...
//把List集合转换为字符串用&隔开
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < list.size(); i++) {
stringBuffer.append(list.get(i).toString().trim() + "&");
String s = strin...
my_list = ['apple', 'banana', 'orange']
my_string = ', '.join(my_list)
print(my_string)
apple, banana, orange
在join()方法中,传递一个字符串作为分隔符,该方法将列表中的所有元素连接起来,并在它们之间插入分隔符。