HOWTO · Java

如何从 Java 中的字符串中删除子字符串

本教程说明如何使用多种方法从 Java 中的任何给定字符串中删除子字符串,例如使用 repalce(),replaceAll()和 StringBuffer()。

本页内容

在本教程中,我们将学习如何从 Java 中的任何给定字符串中删除子字符串。

replace() 方法删除 Java 中的子字符串

删除/替换任何子字符串的第一个也是最常用的方法是 Java String 类的 replace() 方法。

string.replace(char oldChar, char newChar)

第一个参数是要替换的子字符串,第二个参数是要替换第一个参数的新子字符串。

示例代码:

import java.text.*;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    String originalstring = "This is Simple Testing";
    String replace = originalstring.replace('i', 'a');
    System.out.println("Original String: " + originalstring);
    System.out.println("Modified String with Replacement: " + originalstring.replace('i', 'a'););
  }
}

输出:

Original String: This is Simple Testing
Modified String with Replacement: Thas as Sample Testang

StringBuffer.replace() 方法从 Java 中的字符串中删除字符

此方法可以删除/替换给定索引范围内的任何子字符串。Java StringBuffer 与 String 类似,但是是可变类型。

StringBuffer.replace() 方法的语法是,

StringBuffer replace(int start, int end, String str)

start 和 end 是指定范围的开始和结束索引。start 是包含在内的,而 end 是不包含的,因此,实际范围是 [start, end-1]。

str 是用来替换上述指定范围内内容的字符串。

示例代码:

import java.text.*;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    StringBuffer originalString = new StringBuffer("Simple Testing");
    System.out.println("Original String: " + originalString);
    originalString.replace(5, 6, "y");
    System.out.println("Modified String: " + originalString);
  }
}

输出:

Original String: Simple Testing
Modified String: Simply Testing

replaceAll() 方法从 Java 中的字符串中删除子字符串

与 replace() 方法类似的另一种方法是使用 Java String 类的 replaceAll() 方法。

它的语法是

String replaceAll(String regex, String replace)

regex 是正则表达式的模式。

replace 是替换现有字符串的字符串。

示例代码:

import java.text.*;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    String originalstring = "This is Simple Testing Code";
    System.out.println("Original String: " + originalstring);
    System.out.println("Modified String: " + originalstring.replaceAll("Code", ""));
  }
}

输出:

Original String: This is Simple Testing Code
Modified String: This is Simple Testing 

使用 replaceAll() 方法的另一个更好的地方是使用正则表达式的模式来一次删除所有与该模式匹配的子字符串。

示例代码:

import java.text.*;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    String originalstring = "This Test is from Simple Testing Code to Test function ";
    System.out.println("Original String: " + originalstring);
    System.out.println("Modified String: " + originalstring.replaceAll("Tes.*?\\b", ""));
  }
}

输出:

Original String: This Test is from Simple Testing Code to Test function 
Modified String: This  is from Simple  Code to  function 
注意
replace() 和 replaceAll() 方法都替换所有出现的情况。它们之间的区别是 replaceAll() 方法使用正则表达式模式。