String类型的replaceAll函数

Java把String类型的替换封装成函数,有replace和replaceAll

下面举一个例子,根据牛客网上面的题而来

public class ReplaseAll {


public static void main(String[] args) {
// TODO Auto-generated method stub
String classFile = "com.jd.".replaceAll("." , "/")+"Myclass.class";
String classFile1 = "com.jd.".replace('.' , '/')+"Myclass.class";
System.out.println(classFile);
System.out.println(classFile1);
}


}

我看到这个就立马反映到,答案应该是

com/jd/Myclass.class
com/jd/Myclass.class

但是很不幸,结果不正确

正确答案:

联想到前几天做的课设,使用了replaceAll方法处理?,不可以直接写,而是需要在?前面添加  \\

所以就有了下面的代码:
public class ReplaseAll {


public static void main(String[] args) {
// TODO Auto-generated method stub
String classFile = "com.jd.".replaceAll("\\.", "/")+"Myclass.class";
String classFile1 = "com.jd.".replace('.', '/')+"Myclass.class";
System.out.println(classFile);
System.out.println(classFile1);
}


}

对应的结果是:

记得当时查过:
+、*、|、/等符号在正则表达示中有相应的不同意义。

 一般来讲只需要加[]、或是//即可

所以我就用【】试了试:

public class ReplaseAll {


public static void main(String[] args) {
// TODO Auto-generated method stub
String classFile = "com.jd.".replaceAll("[.]", "/")+"Myclass.class";
String classFile1 = "com.jd.".replace('.', '/')+"Myclass.class";
System.out.println(classFile);
System.out.println(classFile1);
}


}

实验结果:


结合上面的,编出下面代码:

public class ReplaseAll {


public static void main(String[] args) {
// TODO Auto-generated method stub
String classFile = "com+jd+".replaceAll("[+]", "/")+"Myclass.class";
String classFile1 = "com*jd*".replaceAll("[*]", "/")+"Myclass.class";
String classFile2 = "com|jd|".replaceAll("[|]", "/")+"Myclass.class";
String classFile3 = "com/jd/".replaceAll("[/]", ",")+"Myclass.class";
String classFile4 = "com?jd?".replaceAll("[?]", "/")+"Myclass.class";
String classFile5 = "com.jd.".replaceAll("[.]", "/")+"Myclass.class";
System.out.println(classFile);
System.out.println(classFile1);
System.out.println(classFile2);
System.out.println(classFile3);
System.out.println(classFile4);
System.out.println(classFile5);
}


}

对应结果为:


则总结属于这类特殊的字符有  '+'  '*'  '|'  '?'   '.'   '/'  等。


你可能感兴趣的:(replaceAll,[]或//)