关于java中replace、replaceAll、replaceFirst的⽤法
今天突然看到Java中的replace有两种⽅法,⼀种是直接替换,另⼀种是可以进⾏匹配替换的⽅式:
public replace( target,
replacement)
使⽤指定的字⾯值替换序列替换此字符串所有匹配字⾯值⽬标序列的⼦字符串。该替换从字符串的开头朝末尾执⾏,例如,⽤ "b" 替换字符串 "aaa" 中的 "aa" 将⽣成 "ba" ⽽不是 "ab"。
参数:
target - 要被替换的 char 值序列
replacement - char 值的替换序列
返回:
所得 String
抛出:
NullPointerException - 如果target或replacement为null。
源码如下:
public String replace(CharSequence target, CharSequence replacement) {
return String(), Pattern.LITERAL).matcher(this).replaceAll(Matcher.String())); }
------------------------------------------------------------------------------------
String的replaceAll⽤法
public String replaceAll(String regex, String replacement) {
replaceall()return Patternpile(regex).matcher(this).replaceAll(replacement);
}
是将第⼀次参数作为正则表达式进⾏匹配:
如:
String a = "0010101";
a = a.replace("^0", "(81)");
System.out.println(a);
// 此时输出的是(81)010101,因为^0翻译成正则表达式是第⼀个0,所以第⼀个0与正则表达式匹配,然后⽤(81)替换与正则表达式匹配的字符串
但是replaceAll有区别的是:
String a = "00010101";
a = a.replaceAll("0", "(81)");
System.out.println(a);
// 输出的是(81)(81)(81)1(81)1(81)1
---------------------------------------------------------------------------------------
replaceFirst⽤法:
public String replaceFirst(String regex, String replacement) {
return Patternpile(regex).matcher(this).replaceFirst(replacement);
}
是将第⼀次参数作为正则表达式进⾏匹配:
如:
String a = "0010101";
a = a.replace("^0", "(81)");
System.out.println(a);
// 此时输出的是(81)010101,因为^0翻译成正则表达式是第⼀个0,所以第⼀个0与正则表达式匹配,然后⽤(81)替换与正则表达式匹配的字符串
但是replaceAll有区别的是:
String a = "00010101";
a = a.replaceAll("0", "(81)");
System.out.println(a);
// 输出的是(81)0010101
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论