zoukankan      html  css  js  c++  java
  • java split函数报错

    执行如下的代码

    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.(Unknown Source)
    at java.util.regex.Pattern.compile(Unknown Source)
    at java.lang.String.split(Unknown Source)
    at java.lang.String.split(Unknown Source)
    at zx.test.App.main(App.java:12)

    出现这种情况的原因是因为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正则表达式的语法与示例

  • 相关阅读:
    设置开发环境
    安装开发软件
    学习路线
    预备知识
    Spring是什么
    yum安装nginx
    .net 哈希
    Excel文件处理Demo
    汉字处理组件
    Log4Net
  • 原文地址:https://www.cnblogs.com/ZiYangZhou/p/8306790.html
Copyright © 2011-2022 走看看