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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 lkjghvcx@163.co 于 2013-7-5 14:32 编辑

String str=dir.getAbsolutePath();
String str2=str.replaceFirst(":", "_").replaceAll("\\", "_");   //replaceFirst(":", "_")这个可以,.replaceAll("\\", "_") 这个不行


报错:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1\ ^        at java.util.regex.Pattern.error(Unknown Source)        at java.util.regex.Pattern.compile(Unknown Source)        at java.util.regex.Pattern.<init>(Unknown Source)        at java.util.regex.Pattern.compile(Unknown Source)        at java.lang.String.replaceAll(Unknown Source)

评分

参与人数 1技术分 +1 收起 理由
赵海洋 + 1 楼主最好贴出比较完整的代码,便于朋友们解.

查看全部评分

3 个回复

倒序浏览
  1. public class test2
  2. {
  3.         public static void main(String[] args)
  4.         {       
  5.                 File dir = new File("c:\\a\\b\\c.txt");
  6.                 String str = dir.getAbsolutePath();
  7.                
  8.                 /*
  9.                  * 你先看下replaceAll(String regex, String replacement)的第一个形参的含义:
  10.                  *  @param   regex
  11.      *          the regular expression to which this string is to be matched
  12.      *      
  13.      *      这里要替换的是两个反斜线字符,而反斜线在正则表达式中有特殊含义,所以要对被替换的两个反斜线字符都转义
  14.                  */
  15.                 //String str2=str.replaceFirst(":", "_").replaceAll("\\", "_"); //replaceFirst(":", "_")这个可以,.replaceAll("\\", "_") 这个不行
  16.                 String str2=str.replaceFirst(":", "_").replaceAll("\\\\", "_"); //这里是我改动的行
  17.                
  18.                
  19.                 System.out.println(str2);
  20.         }
  21. }
复制代码
希望对你有所帮助

评分

参与人数 1技术分 +1 收起 理由
赵海洋 + 1 25分毕业咯,不过要继续坚持发帖!.

查看全部评分

回复 使用道具 举报
如果问题得到满意答案,请将帖子类型改为已解决。
回复 使用道具 举报
王洪波 发表于 2013-7-5 09:25
希望对你有所帮助

嗯, 厉害,
没想到要四道斜线
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马