Java String.split() method 有如下几种特殊情况:
1. 分隔符出现在首尾
1 public static void main(String args[]) { 2 String Str = new String("aba"); 3 System.out.println("Start :" ); 4 5 for (String retval: Str.split("a")) { 6 System.out.println("^"+ retval + "^"); 7 } 8 System.out.println("Stop" ); 9 }
结果是:
Start : ^^ ^b^ Stop
首部的分隔符革出一个空位,尾部分隔符没有革出空位. 这里的空位不是空格.参看3 和 4.
2.
1 public static void main(String args[]) {
2 String Str = new String("aaa");
3 System.out.println("Start :" );
4
5 for (String retval: Str.split("a")) {
6 System.out.println("^"+ retval + "^");
7 }
8 System.out.println("Stop" );
9 }
结果:
Start :
Stop
如果中间没有革出值,那么所有值都清空.
3.
1 public static void main(String args[]) { 2 String Str = new String(" aaa "); 3 System.out.println("Start :" ); 4 5 for (String retval: Str.split("a")) { 6 System.out.println("^"+ retval + "^"); 7 } 8 System.out.println("Stop" ); 9 }
结果:
Start : ^ ^ ^^ ^^ ^ ^ Stop
若是首尾出现空格,那么会被单独革出,中间两个没有值.
4.
1 public static void main(String args[]) { 2 String Str = new String("aaa "); 3 System.out.println("Start :" ); 4 5 for (String retval: Str.split("a")) { 6 System.out.println("^"+ retval + "^"); 7 } 8 System.out.println("Stop" ); 9 }
结果:
1 Start : 2 ^^ 3 ^^ 4 ^^ 5 ^ ^ 6 Stop
由此可以看出首部隔开的不是空格.