Java教程-Java String replace()方法

Java String replace()方法
Java String类的replace()方法用于将所有旧字符或CharSequence替换为新字符或CharSequence。
自JDK 1.5以来,引入了一种新的replace()方法,允许我们替换一系列char值。
语法
Java String类中有两种replace()方法。
public String replace(char oldChar, char newChar)
public String replace(CharSequence target, CharSequence replacement)
自JDK 1.5以后添加了第二种replace()方法。
参数
oldChar:旧字符
newChar:新字符
target:目标字符序列
replacement:替换字符序列
返回值
替换后的字符串
异常抛出
NullPointerException:如果replacement或target为null。
内部实现
public String replace(char oldChar, char newChar) {
if (oldChar != newChar) {
int len = value.length;
int i = -1;
char[] val = value; /* 避免 getfield 操作码 */
while (++i < len) {
if (val[i] == oldChar) {
break;
}
}
if (i < len) {
char buf[] = new char[len];
for (int j = 0; j < i; j++) {
buf[j] = val[j];
}
while (i < len) {
char c = val[i];
buf[i] = (c == oldChar) ? newChar : c;
i++;
}
return new String(buf, true);
}
}
return this;
}
public String replace(CharSequence target, CharSequence replacement)
{
return Pattern.compile(target.toString(), Pattern.LITERAL).matcher(
this).replaceAll(Matcher.quoteReplacement(replacement.toString()));
}
Java String replace(char old, char new)方法示例
文件名:ReplaceExample1.java
public class ReplaceExample1{
public static void main(String args[]){
String s1="javatpoint is a very good website";
String replaceString=s1.replace('a','e');//将所有出现的“a”替换为“e”
System.out.println(replaceString);
}}
输出:
jevetpoint is e very good website
Java String replace(CharSequence target, CharSequence replacement) 方法示例
文件名:ReplaceExample2.java
public class ReplaceExample2{
public static void main(String args[]){
String s1="my name is khan my name is java";
String replaceString=s1.replace("is","was");//将所有出现的“is”替换为“was“
System.out.println(replaceString);
}}
输出:
my name was khan my name was java
Java String replace()方法示例3
文件名:ReplaceExample3.java
public class ReplaceExample3 {
public static void main(String[] args) {
String str = "oooooo-hhhh-oooooo";
String rs = str.replace("h","s"); // 将“h”替换为“s”
System.out.println(rs);
rs = rs.replace("s","h"); // 将“s”替换为“h”
System.out.println(rs);
}
}
输出:
oooooo-ssss-oooooo
oooooo-hhhh-oooooo
Java String replace()方法示例4
当replacement或target为null时,replace()方法会抛出NullPointerException异常。以下示例证实了这一点。
文件名:ReplaceExample4.java
public class ReplaceExample4
{
// main method
public static void main(String argvs[])
{
String str = "For learning Java, JavaTpoint is a very good site.";
int size = str.length();
System.out.println(str);
String target = null;
// 用 JavaTpoint 替换 null。因此,引发了 NullPointerException。
str = str.replace(target, "JavaTpoint ");
System.out.println(str);
}
}
输出:
For learning Java, JavaTpoint is a very good site.
Exception in thread "main" java.lang.NullPointerException
at java.base/java.lang.String.replace(String.java:2142)
at ReplaceExample4.main(ReplaceExample4.java:12)