您的位置:首页 > 其它

使用split()遇到的问题和方法总结 ( Dangling meta character 和 多个分隔字符)

2015-07-15 15:56 661 查看
今天在尝试用“+-*、”来分割字符串的时候 一次把两个问题都遇到了

第一个问题:

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

+-/*

^

而 “ * ”也有类似问题:

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

*

^



而“|” 也会导致类似的问题

总之遇到了 “Dangling meta character” 就加上牌子“\\”试试,比如“\\*”就不会有问题了

解决方法:

给这样的"Dangling meta character" 前置一块牌子,也就是加上“\\”,

例如:

(把出错的) String[] str = s.split("*");

加上“\\”, 改成 String[] str = s.split("\\*"); (也就没问题了)

而想使用多个字符来分割的话,比如“+-*/”如果你发现结果不妥的话,那么也许是因为编译器认为你是在用着一整个字符串“+-*/”来分隔,而不是使用了四个分隔符,

使用多个分隔符的时候,要好好地告诉编译器,用“|”(按位或)来相区别各个分隔符,

例如:

想把 "12.93+18-20/4+2*41" 分成: 12.93 18 20 4 2 41

那就把 split("+-/*")

改成 split("\\+|-|/|\\*")

其中\\的作用前面已经提到了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: