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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

str.replaceAll("\\.txt", ".java")。
这一个句的\\.txt用.java来代替,中\\不是表示转义字符\吗,那转义之后不就是\.txt了,
   .java替换的不就是\.txt了吗,怎么实际上替换的是.txt呢

4 个回复

倒序浏览
\\.txt如果是\.txt的话,\就把后面的 . 给转义了。而你本来是把.txt转换成.java的,所以就用\\.txt,这样才能转成你想要的
回复 使用道具 举报
class str {
        public static void main (String[] args){
                String str = "\\.txt";
                System.out.println("替换前:" + str);                                                //替换前:\.txt,这是因为转义字符,输出为\
                str = str.replaceAll("\\\\.txt", ".java");                                              //java中,用\\表示一个\,所以用\\\\表示\\.
                System.out.println("替换后:" + str);//打印字符串                              //替换后:.java
        }
}       
总结:在regex中"\\"表示一个"\",在java中一个"\"也要用"\\"表示。这样,前一个"\\"代表regex中的"\",后一个"\\"代表java中的"\"
回复 使用道具 举报
solomanlove 发表于 2016-1-9 16:25
class str {
        public static void main (String[] args){
                String str = "\\.txt";

我表述错了,应该是这样的
File file = new File(path);  
                        File newfile = new File(file.getPath().replaceAll("\\.txt", ".java"));
这句话替换的结果是.java,在这里为什么可以,但是单独的
String s="\\.txt";
                        String str="C:\\Users\\weizhilin\\Desktop\\文件\\03技术博客\\新建文本文档.txt";
                        s=str.replaceAll(s, ".java");
这个也可以是.java,这个到底是为什么呢?

回复 使用道具 举报
没看懂,不知道什么问题,就是一种格式
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马