Antworten:
Sie könnten leicht verwenden String.replace()
:
String helloWorld = "Hello World!";
String hellWrld = helloWorld.replace("o","");
Schauen Sie sich Apache StringUtils an :
static String replace(String text, String searchString, String replacement)
Ersetzt alle Vorkommen eines Strings in einem anderen String.static String replace(String text, String searchString, String replacement, int max)
Ersetzt einen String durch einen anderen String in einem größeren String für die ersten Maximalwerte des Suchstrings.static String replaceChars(String str, char searchChar, char replaceChar)
Ersetzt alle Vorkommen eines Zeichens in einem String durch ein anderes.static String replaceChars(String str, String searchChars, String replaceChars)
Ersetzt mehrere Zeichen in einem String auf einmal.static String replaceEach(String text, String[] searchList, String[] replacementList)
Ersetzt alle Vorkommen von Strings in einem anderen String.static String replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)
Ersetzt alle Vorkommen von Strings in einem anderen String.static String replaceOnce(String text, String searchString, String replacement)
Ersetzt einmal einen String durch einen anderen String in einem größeren String.static String replacePattern(String source, String regex, String replacement)
Ersetzt jede Teilzeichenfolge der Quellzeichenfolge, die dem angegebenen regulären Ausdruck entspricht, durch die angegebene Ersetzung mit der Option Pattern.DOTALL.
replace('regex', 'replacement');
replaceAll('regex', 'replacement');
In Ihrem Beispiel
String hi = "Hello World!"
String no_o = hi.replaceAll("o", "");
Sie können Teilzeichenfolge auch zum Ersetzen durch vorhandene Zeichenfolgen verwenden:
var str = "abc awwwa";
var Index = str.indexOf('awwwa');
str = str.substring(0, Index);
Hier ist die Implementierung zum Löschen aller Teilzeichenfolgen aus der angegebenen Zeichenfolge
public static String deleteAll(String str, String pattern)
{
for(int index = isSubstring(str, pattern); index != -1; index = isSubstring(str, pattern))
str = deleteSubstring(str, pattern, index);
return str;
}
public static String deleteSubstring(String str, String pattern, int index)
{
int start_index = index;
int end_index = start_index + pattern.length() - 1;
int dest_index = 0;
char[] result = new char[str.length()];
for(int i = 0; i< str.length() - 1; i++)
if(i < start_index || i > end_index)
result[dest_index++] = str.charAt(i);
return new String(result, 0, dest_index + 1);
}
Die Implementierung der isSubstring () -Methode ist hier
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));
}
Für den Fall, dass Sie eine komplizierte Logik zum Filtern des Zeichens haben, nur auf eine andere Weise replace()
.