Java 中的 Split() 字符串方法及示例

原创 朱雀 2021-08-14 09:31 13525阅读 0赞

string split() 方法在给定正则表达式的匹配项周围断开给定字符串。

例如:

  1. 输入字符串:016-78967
  2. 正则表达式: -
  3. 输出:{“016”,“78967”}

以下是 Java 中 split() 方法的两种变体:

1. public String [ ] split ( String regex, int limit )

  1. 参数:
  2. regex - 分隔正则表达式
  3. Limit - 结果阈值
  4. 返回:
  5. 通过拆分给定字符串计算出的字符串数组。
  6. 抛出:
  7. PatternSyntaxException - 如果提供的正则表达式
  8. 语法无效。

限制参数可以有 3 个值:

  1. limit > 0 :如果是这种情况,则模式将是
  2. 最多应用 limit-1 次,结果
  3. 数组的长度不会超过 n,并且
  4. 结果数组的最后一个条目将包含
  5. 超出最后匹配模式的所有输入。
  6. limit < 0 :在这种情况下,模式将被应用为
  7. 尽可能多次,结果
  8. 数组可以是任意大小。
  9. limit = 0 :在这种情况下,模式将被应用为
  10. 尽可能多次,结果数组可以
  11. 是任意大小,尾随空字符串将
  12. 被丢弃。

这是它的工作原理:

  1. Let the string to be splitted be : geekss@for@geekss
  2. Regex Limit Result
  3. @ 2 {“geekss”, for@geekss”}
  4. @ 5 {“geekss”, for”, geekss”}
  5. @ -2 {“geekss”, for”, geekss”}
  6. s 5 {“geek”, ”“, @for@geek”, “”, “”}
  7. s -2 {“geek”, “, @for@geek”, “”, “”}
  8. s 0 {“geek”, ””, @for@geek”}

以下是演示 split() 工作的 Java 示例代码

示例 1:

  1. // Java program to demonstrate working of split(regex,
  2. // limit) with small limit.
  3. public class GFG {
  4. public static void main(String args[])
  5. {
  6. String str = "geekss@for@geekss";
  7. String[] arrOfStr = str.split("@", 2);
  8. for (String a : arrOfStr)
  9. System.out.println(a);
  10. }
  11. }

输出:

  1. geekss
  2. for@geekss

示例 2:

  1. // Java program to demonstrate working of split(regex,
  2. // limit) with high limit.
  3. public class GFG {
  4. public static void main(String args[])
  5. {
  6. String str = "geekss@for@geekss";
  7. String[] arrOfStr = str.split("@", 5);
  8. for (String a : arrOfStr)
  9. System.out.println(a);
  10. }
  11. }

输出:

  1. geekss
  2. for
  3. geekss

示例 3:

  1. // Java program to demonstrate working of split(regex,
  2. // limit) with negative limit.
  3. public class GFG {
  4. public static void main(String args[])
  5. {
  6. String str = "geekss@for@geekss";
  7. String[] arrOfStr = str.split("@", -2);
  8. for (String a : arrOfStr)
  9. System.out.println(a);
  10. }
  11. }

输出:

  1. geekss
  2. for
  3. geekss

示例 4:

  1. // Java program to demonstrate working of split(regex,
  2. // limit) with high limit.
  3. public class GFG {
  4. public static void main(String args[])
  5. {
  6. String str = "geekss@for@geekss";
  7. String[] arrOfStr = str.split("s", 5);
  8. for (String a : arrOfStr)
  9. System.out.println(a);
  10. }
  11. }

输出:

  1. geek
  2. @for@geek

示例 5:

  1. // Java program to demonstrate working of split(regex,
  2. // limit) with negative limit.
  3. public class GFG {
  4. public static void main(String args[])
  5. {
  6. String str = "geekss@for@geekss";
  7. String[] arrOfStr = str.split("s", -2);
  8. for (String a : arrOfStr)
  9. System.out.println(a);
  10. }
  11. }

输出:

  1. geek
  2. @for@geek

示例 6:

  1. // Java program to demonstrate working of split(regex,
  2. // limit) with 0 limit.
  3. public class GFG {
  4. public static void main(String args[])
  5. {
  6. String str = "geekss@for@geekss";
  7. String[] arrOfStr = str.split("s", 0);
  8. for (String a : arrOfStr)
  9. System.out.println(a);
  10. }
  11. }

输出:

  1. Geek
  2. @for@geek

2. public String[] split(String regex)

split 方法的这个变体将一个正则表达式作为参数,并围绕这个正则表达式正则表达式的匹配来打破给定的字符串。这里默认限制为 0。

  1. Parameters:
  2. regex - a delimiting regular expression
  3. Returns:
  4. An array of strings computed by splitting the given string.
  5. Throws:
  6. PatternSyntaxException - if the provided regular expressions
  7. syntax is invalid.

以下是一些工作示例代码:

示例 1:

  1. // Java program to demonstrate working of split()
  2. public class GFG {
  3. public static void main(String args[])
  4. {
  5. String str = "GeeksforGeeks:A Computer Science Portal";
  6. String[] arrOfStr = str.split(":");
  7. for (String a : arrOfStr)
  8. System.out.println(a);
  9. }
  10. }

输出:

  1. GeeksforGeeks
  2. A Computer Science Portal

示例 2:

  1. // Java program to demonstrate working of split()
  2. public class GFG {
  3. public static void main(String args[])
  4. {
  5. String str = "GeeksforGeeksforStudents";
  6. String[] arrOfStr = str.split("for");
  7. for (String a : arrOfStr)
  8. System.out.println(a);
  9. }
  10. }

输出:

  1. Geeks
  2. Geeks
  3. Students

在上面的例子中可以看出,模式/正则表达式“for”被应用了两次(因为“for”在要拆分的字符串中出现了两次)

示例 3:

  1. // Java program to demonstrate working of split()
  2. public class GFG {
  3. public static void main(String args[])
  4. {
  5. String str = "Geeks for Geeks";
  6. String[] arrOfStr = str.split(" ");
  7. for (String a : arrOfStr)
  8. System.out.println(a);
  9. }
  10. }

输出:

  1. Geeks
  2. for
  3. Geeks

示例 4:

  1. // Java program to demonstrate working of split()
  2. public class GFG {
  3. public static void main(String args[])
  4. {
  5. String str = "Geekssss";
  6. String[] arrOfStr = str.split("s");
  7. for (String a : arrOfStr)
  8. System.out.println(a);
  9. }
  10. }

输出:

  1. Geek

在上面的示例中,结果数组 arrOfStr 中不包含尾随空字符串。

示例 5:

  1. // Java program to demonstrate working of split()
  2. public class GFG {
  3. public static void main(String args[])
  4. {
  5. String str = "GeeksforforGeeksfor ";
  6. String[] arrOfStr = str.split("for");
  7. for (String a : arrOfStr)
  8. System.out.println(a);
  9. }
  10. }

输出:

  1. geeks
  2. geeks

在上面的示例中,末尾的尾随空格(因此不是空字符串)成为结果数组 arrOfStr 中的字符串。

示例 6:

  1. // Java program to demonstrate working of split()
  2. // using regular expressions
  3. public class GFG {
  4. public static void main(String args[])
  5. {
  6. String str = "word1, word2 word3@word4?word5.word6";
  7. String[] arrOfStr = str.split("[, ?.@]+");
  8. for (String a : arrOfStr)
  9. System.out.println(a);
  10. }
  11. }
  1. word1
  2. word2
  3. word3
  4. word4
  5. word5
  6. word6

在上面的示例中,只要遇到集合中指定的任何一个字符,就会分隔单词。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

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

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

相关阅读

    相关 Javasplit()方法

    在Java中,split()方法是用于将一个字符串分割成多个字符串的方法。它接收一个正则表达式作为参数,然后按照这个正则表达式来将字符串分割成多个子字符串,返回一个字符串数组