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 个回复

倒序浏览
字符串里反斜杠是转义的作用,有效的(\b \t \n \f \r \" \' \\),按你这样写\a是错误的
回复 使用道具 举报
不用切,直接报错了
首先了解 "\" 在Java字符串中是转义符,\a 会报错 Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ ) 字符串中 "\\" 表示一个 "\"
然后,了解 "\" 在正则表达式中是转义符, "\" 会报错 Unexpected internal error near index 1 \   正则表达式中 "\\" 表示一个 "\"
结合起来,在Java的正则表达式中,"\\\\" 表示一个 "\"
要先按字符串的规则转一遍,再按正则的规则转第二遍
回复 使用道具 举报
不好意思更正一下:String str = "c:\\\abc\\a.txt";是这样,多一个反斜杠,该怎么切?正则该怎么写?
回复 使用道具 举报
steven152 发表于 2014-8-13 23:14
不好意思更正一下:String str = "c:\\\abc\\a.txt";是这样,多一个反斜杠,该怎么切?正则该怎么写? ...

你这不还是报错吗…
回复 使用道具 举报
改成这样应就不会报错了吧:String str = "c:*abc\\a.txt"; 其实我想表示的意思是不同的符号该怎么切?正则怎么写?
回复 使用道具 举报
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"
回复 使用道具 举报
先替换,再切割,想一次性切应该不行的。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马