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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 steven152 于 2014-8-21 00:26 编辑

在day25-03毕老师视频中有一段代码是;
public static void splitDemo()
{
        String str = "c:\\abc\\a.txt";//请问各位师兄改为:String str = "c:\\abc\a.txt";少一个反斜杠,该怎么切?正则该怎么写?
        String reg = "\\\\";
        String [] arr = str.split(reg);
        System.out.println(arr.length);
        for(String s : arr)
        {
                System.out.println(s);
        }
}//不好意思更正一下:String str = "c:\\\abc\\a.txt";是这样,多一个反斜杠,该怎么切?正则该怎么写?
//如果觉得会报错的话,改成这样应就不会报错了吧:String str = "c:*abc\\a.txt"; 其实我想表示的意思是不同的符号该怎么切?正则怎么写?


7 个回复

正序浏览
先替换,再切割,想一次性切应该不行的。。
回复 使用道具 举报
icris 中级黑马 2014-8-13 23:36:27
7#
steven152 发表于 2014-8-13 23:29
改成这样应就不会报错了吧:String str = "c:*abc\\a.txt"; 其实我想表示的意思是不同的符号该怎么切?正则 ...

如果确定什么符号都行,可以用 "\\W+" 匹配所有符号,这个包含了冒号
如果意思是说几个斜杠都行,用 "\\\\+" 匹配所有连着的反斜杠
要是确定要什么不要其他的,用 "[^a-zA-Z0-9:]+" 这个匹配非字母数字和冒号的所有字符
在字符串里面写两个斜杠用 "C:\\\\abc\\a.txt"
回复 使用道具 举报
改成这样应就不会报错了吧:String str = "c:*abc\\a.txt"; 其实我想表示的意思是不同的符号该怎么切?正则怎么写?
回复 使用道具 举报
steven152 发表于 2014-8-13 23:14
不好意思更正一下:String str = "c:\\\abc\\a.txt";是这样,多一个反斜杠,该怎么切?正则该怎么写? ...

你这不还是报错吗…
回复 使用道具 举报
不好意思更正一下:String str = "c:\\\abc\\a.txt";是这样,多一个反斜杠,该怎么切?正则该怎么写?
回复 使用道具 举报
不用切,直接报错了
首先了解 "\" 在Java字符串中是转义符,\a 会报错 Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ ) 字符串中 "\\" 表示一个 "\"
然后,了解 "\" 在正则表达式中是转义符, "\" 会报错 Unexpected internal error near index 1 \   正则表达式中 "\\" 表示一个 "\"
结合起来,在Java的正则表达式中,"\\\\" 表示一个 "\"
要先按字符串的规则转一遍,再按正则的规则转第二遍
回复 使用道具 举报
字符串里反斜杠是转义的作用,有效的(\b \t \n \f \r \" \' \\),按你这样写\a是错误的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马