天天看点

Java正则篇-25-字符串切割

       本篇来学习正则里的切割功能。在String类有一个split()的方法,就是一个字符串的切割方法,形式参数就是传入一个正则表达式的字符串。这篇,用一个基本的例子,来学习split()方法,我在做自动化测试的时候, 在Java和Python脚本中都使用过这个方法。

1.根据空格切割

使用了split()方法之后,得到的是一个字符串数组。

package regex;
public class Demo1_Split {

   public static void main(String[] args) {

      String st = "安东尼科比詹姆斯哈登保罗";  // 每个名字空格隔开

      //使用split方法,参数是一个空格的正则表达式

      String[] arr= st.split(" ");

      for (inti = 0; i < arr.length; i++) {

        System.out.println(arr[i]);
      }

   }

}
           

2.根据特定符号切割

      上面改变一下原字符串,空格隔开改成点号隔开

在API中,查询一个点(.)表示任意字符,如果切割函数中只写一个点,看看会发生什么。

package regex;

public class Demo1_Split {

   public static void main(String[] args) {

      String st = "安东尼.科比.詹姆斯.哈登.保罗";  // 每个名字空格隔开

      //使用split方法,参数是一个空格的正则表达式

      String []arr= st.split(".");

      for (inti = 0; i < arr.length; i++) {

        System.out.println(arr[i]);
      }
   }
}
           

      结果输出是空白,原因是一个点号表示任意字符,那么看到任何字符(包含空白,空格)都进行切割,字符串被切碎了。下面如果想根据点号来切割,正则表达式需要写成\\.,两个斜杠表示一个斜杠,这里存在转义。

package regex;

public class Demo1_Split {

   public static void main(String[] args) {

      String st = "安东尼.科比.詹姆斯.哈登.保罗";  // 每个名字空格隔开
    
      //使用split方法,参数是一个空格的正则表达式
      String []arr= st.split("\\.");

      for (inti = 0; i < arr.length; i++) {

        System.out.println(arr[i]);

      }
   }
}