Wie kann ich meinen Code so ändern, dass er alle Zeichen in einer bestimmten Zeichenfolge (nicht nur einer Zeichenfolge) in einer anderen Zeichenfolge in O(n)
entfernt? Wenn Sie andere Datenstrukturen verwenden, geben Sie bitte einen Hinweis.Entfernen aller Zeichen aus einer gegebenen Zeichenfolge
public static String removeChar(String s, char ch){
StringBuilder sb= new StringBuilder();
char[] charArray= s.toCharArray();
for (int i=0; i<charArray.length; i++){
if (charArray[i]!=ch) {
sb.append(charArray[i]);
}
}
return sb.toString();
}
Gibt es einen schnelleren Weg dafür?
UPDATE: Ich möchte vielmehr eine neue Funktion wie Iterieren jedes Zeichen des String
dann removeAllCharsInSecondStringFromFirstString(String S1, String S2)
Müssen Sie es selbst implementieren? 'newStr = origStr.replaceAll (" [abcde] * "," ")' sieht ziemlich verlockend für mich aus ... –
Ich bevorzuge es, es selbst zu implementieren, um ja zu üben. Ich habe 'replaceAll' gesehen. –
Die Klasse von Guava [' CharMatcher'] (http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/base/CharMatcher.html) ist für diese Art ausgezeichnet der Sache auch. – dimo414