【Java split】split() 函数分割字符串出现空格的问题以及带转义符号的字符串分割为数组(106)

本文重点:
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();

你可能感兴趣的:(java,java,windows,开发语言)