Java String split()方法详细教程

男娘i 2023-10-10 20:12 168阅读 0赞

Java String split方法详细教程

      • 1、内部实现
      • 2、语法
      • 3、参数
      • 4、返回值
      • 5、抛出异常
      • 6、Java String split()方法示例
      • 7、Java String split()方法与正则表达式和长度示例
      • 8、Java String split()方法与正则表达式和长度示例2

Java String类的split()方法根据给定的正则表达式拆分字符串,并返回一个字符数组。

1、内部实现

  1. public String[] split(String regex, int limit) {
  2. /* 如果正则表达式是一个快速路径
  3. (1)one-char String 且此字符不是其中之一
  4. 正则表达式的元字符“.$|()[{^?*+\\”,或
  5. (2)双字符字符串,第一个字符是反斜杠和
  6. 第二个不是 ascii 数字或 ascii 字母
  7. */
  8. char ch = 0;
  9. if (((regex.value.length == 1 &&
  10. ".$|()[{^?*+\\".indexOf(ch = regex.charAt(0)) == -1) ||
  11. (regex.length() == 2 &&
  12. regex.charAt(0) == '\\' &&
  13. (((ch = regex.charAt(1))-'0')|('9'-ch)) < 0 &&
  14. ((ch-'a')|('z'-ch)) < 0 &&
  15. ((ch-'A')|('Z'-ch)) < 0)) &&
  16. (ch < Character.MIN_HIGH_SURROGATE ||
  17. ch > Character.MAX_LOW_SURROGATE))
  18. {
  19. int off = 0;
  20. int next = 0;
  21. boolean limited = limit > 0;
  22. ArrayList<String> list = new ArrayList<>();
  23. while ((next = indexOf(ch, off)) != -1) {
  24. if (!limited || list.size() < limit - 1) {
  25. list.add(substring(off, next));
  26. off = next + 1;
  27. } else {
  28. // 最后一个
  29. //assert (list.size() == limit - 1);
  30. list.add(substring(off, value.length));
  31. off = value.length;
  32. break;
  33. }
  34. }
  35. // 如果未找到匹配项,则返回此
  36. if (off == 0)
  37. return new String[]{
  38. this};
  39. //添加剩余部分
  40. if (!limited || list.size() < limit)
  41. list.add(substring(off, value.length));
  42. //构建结果
  43. int resultSize = list.size();
  44. if (limit == 0)
  45. while (resultSize > 0 && list.get(resultSize - 1).length() == 0)
  46. resultSize--;
  47. String[] result = new String[resultSize];
  48. return list.subList(0, resultSize).toArray(result);
  49. }
  50. return Pattern.compile(regex).split(this, limit);
  51. }

2、语法

Java String类的split()方法有两种语法。

  1. public String split(String regex)
  2. public String split(String regex, int limit)

3、参数

regex:要应用于字符串的正则表达式。
limit:数组中字符串的数量限制。如果为零,则返回与正则表达式匹配的所有字符串。

4、返回值

字符串数组

5、抛出异常

如果正则表达式的模式无效,则抛出PatternSyntaxException异常。

6、Java String split()方法示例

以下示例返回字符串中除空格之外的单词总数。它还包括特殊字符。

  1. public class SplitExample{
  2. public static void main(String args[]){
  3. String s1="java string split method by javatpoint";
  4. String[] words=s1.split("\\s");//根据空格分割字符串
  5. //使用 java foreach 循环打印字符串数组的元素
  6. for(String w:words){
  7. System.out.println(w);
  8. }
  9. }}
  10. java
  11. string
  12. split
  13. method
  14. by
  15. javatpoint

7、Java String split()方法与正则表达式和长度示例

  1. public class SplitExample2{
  2. public static void main(String args[]){
  3. String s1="welcome to split world";
  4. System.out.println("returning words:");
  5. for(String w:s1.split("\\s",0)){
  6. System.out.println(w);
  7. }
  8. System.out.println("returning words:");
  9. for(String w:s1.split("\\s",1)){
  10. System.out.println(w);
  11. }
  12. System.out.println("returning words:");
  13. for(String w:s1.split("\\s",2)){
  14. System.out.println(w);
  15. }
  16. }}
  17. returning words:
  18. welcome
  19. to
  20. split
  21. world
  22. returning words:
  23. welcome to split world
  24. returning words:
  25. welcome
  26. to split world

8、Java String split()方法与正则表达式和长度示例2

在这里,我们将拆分限制作为第二个参数传递给该函数。这限制了拆分后的字符串数量。

  1. public class SplitExample3 {
  2. public static void main(String[] args) {
  3. String str = "Javatpointtt";
  4. System.out.println("Returning words:");
  5. String[] arr = str.split("t", 0);
  6. for (String w : arr) {
  7. System.out.println(w);
  8. }
  9. System.out.println("Split array length: "+arr.length);
  10. }
  11. }
  12. Returning words:
  13. Java
  14. poin
  15. Split array length: 2

发表评论

表情:
评论列表 (有 0 条评论,168人围观)

还没有评论,来说两句吧...

相关阅读

    相关 String.split()方法介绍

    String.split()方法我们会经常使用到,这个方法可以将一个字符串分割成数组,但是最近在使用的时候发现一个问题,代码如下: String str1 = "1"

    相关 String split方法

    split 分割 把一个字符串按照规则进行分割开 文档中有两种格式,返回类型是String\[\],用了存储分割后的字符串 1  `split(String regex)

    相关 Stringsplit方法

    split方法是一个最常用的拆分字符串的方法。如果没有深入了解的话,就会采坑。 笔者前几天在项目中就遇到了这个坑,一直以为带一个分隔符的字符串,无论左右两侧是否有字符