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

时间:2011-10-15 02:31:44

标签: java string

是否有一种简单的方法可以从Java中的给定String中删除子字符串?

示例:"Hello World!",删除"o""Hell Wrld!"

12 个答案:

答案 0 :(得分:302)

您可以轻松使用String.replace()

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

答案 1 :(得分:8)

您可以使用StringBuffer

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

答案 2 :(得分:6)

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

在您的示例中,

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

答案 3 :(得分:5)

结帐Apache StringUtils

  
      
  • static String replace(String text, String searchString, String replacement)将所有出现的String替换为另一个   字符串。
  •   
  • static String replace(String text, String searchString, String replacement, int max)用一个内部的另一个String替换一个String   较大的字符串,用于搜索字符串的第一个最大值。
  •   
  • 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)用一个内部的另一个String替换一个String   更大的字符串,一次。
  •   
  • static String replacePattern(String source, String regex, String replacement)替换源String的每个子字符串   使用给定的替换匹配给定的正则表达式   Pattern.DOTALL选项。
  •   

答案 4 :(得分:3)

您应该查看StringBuilder/StringBuffer,它允许您删除,插入,替换指定offset处的字符。

答案 5 :(得分:3)

这对我有用。

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

或者您可以使用

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

答案 6 :(得分:2)

您还可以使用guava's CharMatcher.removeFrom功能。

示例:

 String s = CharMatcher.is('a').removeFrom("bazaar");

答案 7 :(得分:0)

private static void replaceChar() {
    String str = "hello world";
    final String[] res = Arrays.stream(str.split(""))
            .filter(s -> !s.equalsIgnoreCase("o"))
            .toArray(String[]::new);
    System.out.println(String.join("", res));
}

如果您有一些复杂的逻辑来过滤char,只需用另一种方法代替replace()

答案 8 :(得分:0)

这是从给定字符串中删除所有子字符串的实现

override func encodeRestorableState(with coder: NSCoder) {
    coder.encode(self.myTextField.text ?? "", forKey: "myTextFieldRestorationKey")
    super.encodeRestorableState(with: coder)
}

override func decodeRestorableState(with coder: NSCoder) {
    if let txt = coder.decodeObject(forKey: "myTextFieldRestorationKey") as? String { self.myTextField.text = txt }
    super.decodeRestorableState(with: coder)
}

isSubstring()方法的实现为here

答案 9 :(得分:0)

replaceAll(String regex, String replacement)

上述方法将有助于获得答案。

String check = "Hello World";
check = check.replaceAll("o","");

答案 10 :(得分:0)

您还可以使用Substring替换现有字符串:

var str = "abc awwwa";
var Index = str.indexOf('awwwa');
str = str.substring(0, Index);

答案 11 :(得分:0)

如果您知道开始和结束索引,则可以使用

string = string.substring(0, start_index) + string.substring(end_index, string.length());