首页 > 编程语言 > 详细

java split函数报错

时间:2018-01-17 23:53:50      阅读:263      评论:0      收藏:0      [点我收藏+]

执行如下的代码

public class App {
    public static void main(String[] args) {
        String str = "123+456+712";
        String[] strings = str.split("+");
        System.out.println(Arrays.toString(strings));
    }
}

抛出异常

Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character ‘+‘ near index 0

  • ^
    at java.util.regex.Pattern.error(Unknown Source)
    at java.util.regex.Pattern.sequence(Unknown Source)
    at java.util.regex.Pattern.expr(Unknown Source)
    at java.util.regex.Pattern.compile(Unknown Source)
    at java.util.regex.Pattern.

出现这种情况的原因是因为String类的分割方法split接受的参数是一个正则表达式,而+这个字符是正则表达式的元字符,需要进行转义,不然就会抛出异常。String类的split方法如下。

public String[] split(String regex) {
    return split(regex, 0);
}

java的正则中的转义使用\\,因此修改之。\\++从元字符转换成普通的+字符。

public class App {
    public static void main(String[] args) {
        String str = "123+456+712";
        String[] strings = str.split("\\+");
        System.out.println(Arrays.toString(strings));
    }
}

参考

读懂正则表达式就这么简单
Java正则表达式的语法与示例

java split函数报错

原文:https://www.cnblogs.com/ZiYangZhou/p/8306790.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!