使用 String.split 函数进行字符串分割时需要注意下面两个事情
1. 特殊字符作为分隔符时需要使用 \\ 进行转义 (比如使用 \\ 作为分隔符的话, 则转义为 \\\\)
.$|()[{^?*+\\
比如这里对 | 分隔符字符串进行分割
- String str = "a|b|c";
- String[] strArr = str.split("\\|");
- System.out.println(strArr.length); // 这里输出 3
- for (int i = 0; i < strArr.length; ++i){
- System.out.println(strArr[i]);// 这里输出 a b c
- }
2. 注意对最后空字符的处理 (通常有些情况在最后数据为空的时候只保留了个分隔符, 如果不做处理的话, 数据分割后的个数会偏离预期)
- String str = "a|b|c|"; // 注意这里在最后多了一个 | 分隔符
- String[] strArr = str.split("\\|");
- System.out.println(strArr.length); // 这里输出 3
- for (int i = 0; i < strArr.length; ++i){
- System.out.println(strArr[i]);// 这里输出 a b c
- }
如果你需要保留最后一个空字符的数据, 则需要将 split 的第二个参数设置为 - 1
- String str = "a|b|c|";// 注意这里在最后多了一个 | 分隔符
- String[] strArr = str.split("\\|",-1);// 这里将第二个参数设置为 - 1
- System.out.println(strArr.length); // 这里输出 4
- for (int i = 0; i < strArr.length; ++i){
- System.out.println(strArr[i]);// 这里输出 a b c 空字符串
- }
以上.
来源: http://www.bubuko.com/infodetail-2663509.html