RT:
问题描述
String s="cn.sun.dao";
String d=s.replaceAll(".","/");//这个方法实际上匹配的是正则表达式?
对点号进行替换会有问题,其他的没什么问题。有没有其他方法可以替换点号啊!
replaceAll方法中替换支持正则表达式,你的代码中一个点号在正则中代表任意字符,得到的结果不正确,需要修改为
String d=s.replaceAll("\\.", "/");
/* * 注释\\.代表一个点号 **/
此外replace方法也能满足你的要求,但replace方法不支持正则表达,因此你的代码还可以改成:
String d=s.replace('.', '/');
或者
String d=s.replace(".", "/");
加上斜杠,转义,否则识别不了
虽然你举得例子不好url这样换没有意义,但是做这件事还是可以的。
String d=s.replaceAll("\.","/");
不要用replaceAll,用replace就好了。斜杠不是逃逸字符,饭斜杠才需要转义。
public static void main(String[] args) {
String str = "com.google.www";
str = str.replace('.', '/');
System.out.println(str);
}
正则表达式中的点号(“.”)可以匹配任意字符。
所以上面程序实际上不是以“.”作为分隔符,而是以任意字符作为分隔符。为了实现以“.”作为分隔符的目的,必须对“.”号进行转义,将上面的程序改为 :
s.replaceAll("\.", "/")
正则表达式中的点号(“.”)可以匹配任意字符。
所以上面程序实际上不是以“.”作为分隔符,而是以任意字符作为分隔符。为了实现以“.”作为分隔符的目的,必须对“.”号进行转义,将上面的程序改为 :
s.replaceAll("\.", "/")
s.replaceAll("\.", "/")
replaceAll方法中替换支持正则表达式,你的代码中一个点号在正则中代表任意字符,得到的结果不正确,需要修改为
String d=s.replaceAll("\.", "/");
\.代表一个点号,楼上的用.是不正确的;
此外replace方法也能满足你的要求,但replace方法不支持正则表达,因此你的代码还可以改成:
String d=s.replace('.', '/');
或者
String d=s.replace(".", "/");
s.replaceAll(".", "/")