当前位置:   article > 正文

Java中split()分割拆分字符串的方法_java 字符串split

java 字符串split

1、split()方法

split()方法是String类的一个方法,用于根据给定的正则表达式将字符串分割成子字符串数组。这个方法非常有用,特别是在需要解析和处理来自文件、用户输入或其他源的文本数据时。

public String[] split(String regex)根据匹配给定正则表达式的部分将字符串分割为子字符串数组。

public String[] split(String regex, int limit) 根据正则表达式分割字符串,但结果数组的长度不会超过limit。如果limit被设置为负数,则表示没有限制。

regex参数是正则达式,一般情况下,分割字符串参考字符串就行,不用考虑正则表达式。

例如,

  1. public class Main {
  2. public static void main(String[] args) {
  3. String str= "boo:and:foo";
  4. //输出[boo, and:foo]
  5. System.out.println(java.util.Arrays.toString(str.split(":",2)));
  6. //输出[boo, and, foo]
  7. System.out.println(java.util.Arrays.toString(str.split(":",5)));
  8. //输出[boo, and, foo]
  9. System.out.println(java.util.Arrays.toString(str.split(":",-2)));
  10. //输出[b, , :and:f, , ]
  11. System.out.println(java.util.Arrays.toString(str.split("o",5)));
  12. //输出[b, , :and:f, , ]
  13. System.out.println(java.util.Arrays.toString(str.split("o",-2)));
  14. //输出[b, , :and:f]
  15. System.out.println(java.util.Arrays.toString(str.split("o",0)));
  16. }
  17. }

2、split()方法使用的特殊情况

split()方法是String类的一个方法,用于根据给定的正则表达式将字符串分割成子字符串数组。虽然这个方法很直接,但在使用特殊字符作为分隔符时,可能会遇到一些不直观的情况。这是因为split()方法的参数是一个正则表达式,而在正则表达式中,某些字符(如点.、星号*、加号+、问号?、反斜杠\、方括号[]、大括号{}和圆括号())具有特殊的含义,因此在使用这些特殊字符作为分隔符时需要特别小心。

1)分割拆分字符串进传入的参考字符串是正则表达式中的元字符

\ ^ $ . | ? * + ( [ {

如果字符串包含$ ,用$进行分割,例如,可以使用如下3种方法,

  1. import java.util.regex.Pattern;
  2. import java.util.regex.Matcher;
  3. public class Main {
  4. public static void main(String[] args) {
  5. String str= "boo$and$foo";
  6. //使用正则表达式
  7. System.out.println(java.util.Arrays.toString(str.split("[$]")));
  8. //利用Pattern.quote()转义成普通字符
  9. System.out.println(java.util.Arrays.toString(str.split(Pattern.quote("$"))));
  10. //通过\\进行转义
  11. System.out.println(java.util.Arrays.toString(str.split("\\$")));
  12. }
  13. }

2)如果需要保留参考字符

例如,有个字符串"0431-87534433",分割拆分之后,"-"需要保留在子字符串中:

  1. import java.util.regex.Pattern;
  2. import java.util.regex.Matcher;
  3. public class Main {
  4. public static void main(String[] args) {
  5. //保留在后面子字符串中
  6. String string1 = "0431-8753";
  7. String[] parts1 = string1.split("(?<=-)");
  8. //?<=:正则表达式,反向肯定预查
  9. String part1 = parts1[0]; // 0431-
  10. String part2 = parts1[1]; // 8753
  11. System.out.println(part1);
  12. System.out.println(part2);
  13. //保留在前面子字符串中
  14. String string2 = "0431-8753";
  15. String[] parts2 = string2.split("(?=-)");
  16. //?=:正则表达式,正向肯定预查
  17. String part3 = parts2[0]; // 0431
  18. String part4 = parts2[1]; // -8753
  19. System.out.println(part3);
  20. System.out.println(part4);
  21. }
  22. }

参考文档:Java中split()分割拆分字符串的方法-CJavaPy

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/856073
推荐阅读
相关标签
  

闽ICP备14008679号