經常有這種情況,需要將逗號分割的字符串,比如:aaa, bbb ,ccc,但往往是人工輸入的,難免會有多空格逗號情況,比如:aaa, bbb , ccc, ,,這種情況使用split會解析出不正常的結果。
1.使用split分割
String str1 = "aaa, bbb , ccc, ,"; String[] arr1 = str1.split(","); List<String> list1 = new ArrayList<>(Arrays.asList(arr1)); System.out.println("split:"+list1);
結果:split:[aaa, bbb , ccc, ]
結果多了空格和元素。
2.使用StringUtils.tokenizeToStringArray分割
這種情況可以使用spring的StringUtils.tokenizeToStringArray,非常方便的去掉錯誤輸入的空格和逗號。比如:
String str1 = "aaa, bbb , ccc, ,"; String[] arr2 = StringUtils.tokenizeToStringArray(str1, ","); List<String> list2 = new ArrayList<>(Arrays.asList(arr2)); System.out.println("StringUtils.tokenizeToStringArray"+list2);
結果:StringUtils.tokenizeToStringArray[aaa, bbb, ccc]
可以看到結果是我們預期的結果。