A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭润生 中级黑马   /  2012-9-9 18:36  /  1799 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 彭润生 于 2012-9-10 08:30 编辑

public class DemoString {
public static void main(String[] args) {
  String str = new String("E:\110\120\150\190");
  String[] strs = str.split("\\");//这儿为什么会报个Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1\这样的异常啊,不明白

}
}//我想以反斜线来分割,没想到竟然这样,求解释,求解决办法。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 细节问题记清楚就好了

查看全部评分

5 个回复

倒序浏览
本帖最后由 王红潮 于 2012-9-9 18:56 编辑

"\"在正则里有特殊的含义的,所以java代码中的“\”要用“\\”加转义的,改成下面就没问题了
String str = new String("E:\\110\\120\\150\\190");
  String[] strs = str.split("\\\\");        
        for(String tmp : strs){
                System.out.println(tmp);
        }

具体还有很多特殊含义的字符,API文档里正则表达式介绍的很详细了,也是我们写代码要注意的。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 孙沛 于 2012-9-9 19:06 编辑

哈哈,你的这个分割看似正确,但确实是不正确的
java中\\表示一个\,而regex中\\也表示\,所以你想在正则的时候表示\\,就需要指定为\\\\

public class DemoString {
        public static void main(String[] args) {
          String str = new String("E:\110\120\150\190");
          String[] strs = str.split("\\\\");       
        }
}
你这样打印看有没有效果

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
String str = new String("E:\\110\\120\\150\\190");
  String[] strs = str.split("\\\\");        
        for(String tmp : strs){
                System.out.println(tmp);
        }
是要转义的,当然,
public static void main(String[] args){
                String str = new String("E:/110/120/150/190");
                String[] strs = str.split("/");
                for (String string : strs) {
                        System.out.println(string);
                }
        }
这个样子的话也没有问题了

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
孙沛 发表于 2012-9-9 19:01
哈哈,你的这个分割看似正确,但确实是不正确的
在java中\\表示一个\,而regex中\\也表示\,所以你想在正则 ...

这个的确可以。谢了。
回复 使用道具 举报
王红潮 发表于 2012-9-9 18:54
"\"在正则里有特殊的含义的,所以java代码中的“\”要用“\\”加转义的,改成下面就没问题了
String str =  ...

成了,。,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马