有一个简单的方法来删除子字符串从给定的字符串在Java?

例如:“Hello World!”,去掉“o”→“Hell Wrld!”


当前回答

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

在你的例子中,

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

其他回答

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));
}

如果你有一些复杂的逻辑来过滤字符,那就用另一种方法代替replace()。

你也可以使用番石榴的CharMatcher。removeFrom函数。

例子:

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

你应该看看StringBuilder/StringBuffer,它允许你删除,插入,替换指定偏移量的字符。

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

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

除了@DwB answer,你还可以使用StringUtils remove:

String hello = "hello world";
String hellYeah = StringUtils.remove(hello, "o");

或removeIgnoreCase:

String hello = "hellO world";
String hellYeah = StringUtils.remove(hello, "o");