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)

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想