如何从给定的字符串中删除子字符串?

267
有没有一种简单的方法可以从 Java 中给定的字符串中删除子字符串?
例如:给定字符串 "Hello World!",删除 "o" 后得到结果 "Hell Wrld!"
14个回答

516

你可以轻松使用String.replace()方法:

String helloWorld = "Hello World!";
String hellWrld = helloWorld.replace("o","");

11

你可以使用StringBuffer

StringBuffer text = new StringBuffer("Hello World");
text.replace( StartIndex ,EndIndex ,String);

10

查看Apache StringUtils

  • static String replace(String text, String searchString, String replacement):替换一个字符串中所有出现的另一个字符串。
  • static String replace(String text, String searchString, String replacement, int max):在较大的字符串中,用另一个字符串替换一个字符串的前max个值。
  • static String replaceChars(String str, char searchChar, char replaceChar):将字符串中所有出现的一个字符替换为另一个字符。
  • static String replaceChars(String str, String searchChars, String replaceChars):一次替换字符串中的多个字符。
  • static String replaceEach(String text, String[] searchList, String[] replacementList):替换一个字符串中所有出现的字符串。
  • static String replaceEachRepeatedly(String text, String[] searchList, String[] replacementList):重复替换一个字符串中所有出现的字符串。
  • static String replaceOnce(String text, String searchString, String replacement):在较大的字符串中,将一个字符串替换为另一个字符串(仅替换一次)。
  • static String replacePattern(String source, String regex, String replacement):使用Pattern.DOTALL选项,用给定的替换字符串替换源字符串与给定正则表达式匹配的每个子字符串。

2
刚刚对 replacePattern 进行了基准测试,结果比运行自定义的 Java 代码慢了6倍。 - Alex Arvanitidis
@AlexArvanitidis 请问你能分享一下自定义的Java代码吗?谢谢。 - undefined

8
replace('regex', 'replacement');
replaceAll('regex', 'replacement');

在您的示例中,
String hi = "Hello World!"
String no_o = hi.replaceAll("o", "");

8

这对我来说很有效。

String hi = "Hello World!"
String no_o = hi.replaceAll("o", "");

或者你可以使用


String no_o = hi.replace("o", "");

6
你应该看一下 StringBuilder/StringBuffer,它们可以让你在指定的偏移量处删除、插入、替换字符。

5
你可以使用 Substring 来替换现有的字符串:
var str = "abc awwwa";
var Index = str.indexOf('awwwa');
str = str.substring(0, Index);

4
如果您知道起始和结束索引,可以使用以下方法:
string = string.substring(0, start_index) + string.substring(end_index, string.length());

4
replaceAll(String regex, String replacement)

上述方法将有助于获得答案。
String check = "Hello World";
check = check.replaceAll("o","");

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接