本文重点:
1.带转义符号的字符串转数组格式;
2.split() 函数分割空字符串后数组中元素前出现空格;
3.split() 函数分割需注意的问题;
测试代码:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;public class test06 {public static void main(String[] args) {List<String> res = Arrays.asList("北京","上海","广州","安徽");System.out.println("res:"+res); String a = "[\"北京\",\"安徽\",\"安顺\"]";String b = a.replace("[", "").replace("]", "").replaceAll("[\\[\\]\"]", "").trim();String[] c = b.split(",");String d = String.join(",", c);System.out.println("a:"+a);System.out.println("b:"+b);System.out.println("d:"+d);List<String> list = b.isEmpty()? new ArrayList<>():Arrays.asList(b.split(","));System.out.println("list:"+list);List<String> list2 = new ArrayList();for(String s : list) {String ss = s.trim();if(res.contains(ss)) {System.out.println("进来:"+ss);list2.add(ss);}}System.out.println("list2:"+list2); }
}
测试输出:
res:[北京, 上海, 广州, 安徽]
a:["北京","安徽","安顺"]
b:北京,安徽,安顺
d:北京,安徽,安顺
list:[北京, 安徽, 安顺]
进来:北京
进来:安徽
list2:[北京, 安徽]
代码重点:
String b = a.replace(“[”, “”).replace(“]”, “”).replaceAll(“[\[\]”]", “”).trim();
String ss = s.trim();
如果:没有.replaceAll(“[\[\]”]“, “”)处理,测试输出的a显示也是:[“北京”,“安徽”,“安顺”]。但是,每个元素上面的双引号代表的不是字符串,就是代表符号;加上.replaceAll(”[\[\]“]”, “”),显示效果相同,但是引号仅代表字符串;
split() 函数分割需注意的问题:
1.不为空的字符串分割,需注意分割后数组中的元素前面出现空格,再次使用前要去除空格:.trim();
2.为空的字符串分割,需注意分割后的数组长度为1 的问题,一定要分割前判空:.isEmpty();