Java 实例 - 字符串分割

以下实例使用了 split(string) 方法通过指定分隔符将字符串分割为数组:

JavaStringSplitEmp.java 文件

  1. public class JavaStringSplitEmp {
  2. public static void main(String args[]){
  3. String str = "www-baidu-com";
  4. String[] temp;
  5. String delimeter = "-"; // 指定分割字符
  6. temp = str.split(delimeter); // 分割字符串
  7. // 普通 for 循环
  8. for(int i =0; i < temp.length ; i++){
  9. System.out.println(temp[i]);
  10. System.out.println("");
  11. }
  12. System.out.println("------java for each循环输出的方法-----");
  13. String str1 = "www.baidu.com";
  14. String[] temp1;
  15. String delimeter1 = "\\."; // 指定分割字符, . 号需要转义
  16. temp1 = str1.split(delimeter1); // 分割字符串
  17. for(String x : temp1){
  18. System.out.println(x);
  19. System.out.println("");
  20. }
  21. }
  22. }

以上代码实例输出结果为:

  1. www
  2.  
  3. baidu
  4.  
  5. com
  6.  
  7. ------java for each循环输出的方法-----
  8. www
  9.  
  10. baidu
  11.  
  12. com
  13.  

在本例子中用到 String 类的 split 方法,其实在字符串分割时可以调用 StringTokenizer,实例化一个 StringTokenizer 的对象,通过 hasMoreTokens() 与 nextToken()进行判断并打印分割后的子字符串。具体代码如下:

  1. import java.util.*;
  2. import java.lang.*;
  3. public class Main {
  4. public static void main(String args[]) {
  5. String str="www.baidu.com";
  6. // 实例化对象,并指向以 . 对 str 进行分割
  7. StringTokenizer str2=new StringTokenizer(str, ".");
  8. // 对 str2 遍历并打印子字符串;
  9. while(str2.hasMoreTokens()){
  10. System.out.println(str2.nextToken());
  11. }
  12. }
  13. }

输出结果为:

  1. www
  2. baidu
  3. com

split() 方法在分割字符串后,会从字符串数组的末端开始进行元素是否为空判断,如果为空,则数组长度 -1,一直判断到一个非空的元素后停止,而这个非空元素之前的空的 字符串 "" 会依旧保留。

  1. public static void main(String[] args) {
  2. String s1 = "123-123.2-1--";
  3. String[] ss1 = s1.split("-");
  4. System.out.println(ss1.length);//3
  5. System.out.println(Arrays.toString(ss1));//[123, 123.2, 1]
  6. String s2 = "123--123.2-1--";
  7. String[] ss2 = s2.split("-");
  8. System.out.println(ss2.length);//4
  9. System.out.println(Arrays.toString(ss2));//[123, , 123.2, 1]
  10. }