读书人

String 种有关replace的小知识

发布时间: 2012-11-08 08:48:11 作者: rapoo

String 类有关replace的小知识

String aa = "java.long.String";
System.out.println(aa.replaceAll(".", "/"));

?

上面代码输出的结果是: ////////////////


因为String类的replaceAll方法第一个参数是正则表达式,而"."表示匹配所以字符。

?

参数为CharSequence的replace、replaceAll方法的原始功能代码

都是封装在Matcher类的replaceAll方法中。

replaceAll方法源码:

public String replaceAll(String regex, String replacement) {
??? return Pattern.compile(regex).matcher(this).replaceAll(replacement);
}

?

?

replace方法源码:

public String replace(CharSequence target, CharSequence replacement) {
??????? return Pattern.compile(target.toString(), Pattern.LITERAL).matcher(
??????????? this).replaceAll(Matcher.quoteReplacement(replacement.toString()));
}

Pattern.compile(target.toString(), Pattern.LITERAL)方法会用 LITERAL 模式来创建模式对象

这种模式对象中,元字符或转义序列不具有任何特殊意义。所以replace方法是纯粹的字符转换。

?

?

读书人网 >编程

热点推荐