wake-up-neo.com

Wie kann ich einen Teilstring aus einem bestimmten String entfernen?

Gibt es eine einfache Möglichkeit, Teilstrings aus einem bestimmten String in Java zu entfernen? 

beispiel: "Hallo Welt!" , "o" entfernen -> "Hell Wrld!"

140
Belgi

Sie können einfach String.replace() verwenden:

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

Sie können StringBuffer verwenden 

StringBuffer text = new StringBuffer("Hello World");
text.replace( StartIndex ,EndIndex ,String);
8
Magdi
replace('regex', 'replacement');
replaceAll('regex', 'replacement');

In Ihrem Beispiel

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

Check out Apache StringUtils :

  • 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ößerer String für die ersten Maximalwerte des Suchstrings.
  • static String replaceChars(String str, char searchChar, char replaceChar) Ersetzt alle Vorkommen eines Zeichens in einer Zeichenfolge durch Ein weiterer.
  • 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 innerhalb von ein anderer String.
  • static String replaceEachRepeatedly(String text, String[] searchList, String[] replacementList) Ersetzt alle Vorkommen von Zeichenfolgen innerhalb einer anderen Zeichenfolge.
  • static String replaceOnce(String text, String searchString, String replacement) Ersetzt einen String durch einen anderen String in einem Größere Zeichenfolge einmal.
  • static String replacePattern(String source, String regex, String replacement) Ersetzt jeden Teilstring des Quellstrings, der stimmt mit dem angegebenen regulären Ausdruck mit der angegebenen Ersetzung überein. die Option Pattern.DOTALL.
5
DwB

Das funktioniert gut für mich.

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

oder du kannst verwenden 

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

Sie sollten sich StringBuilder/StringBuffer ansehen, mit dem Sie Zeichen (s) bei angegebenem offset löschen, einfügen, ersetzen können.

3
adatapost

Sie können auch die Funktion GuavasCharMatcher.removeFrom verwenden.

Beispiel:

 String s = CharMatcher.is('a').removeFrom("Bazaar");
2
Emil
  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, kann dies auf eine andere Weise erfolgen, anstatt zu ersetzen.

0
Sean

Wenn Sie den Start- und Endindex kennen, können Sie diesen verwenden

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

Hier ist die Implementierung, um alle Teilzeichenfolgen aus der angegebenen Zeichenfolge zu löschen

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 Methode isSubstring () ist hier

0
Pratik Patil

Sie können Substring auch zum Ersetzen durch eine vorhandene Zeichenfolge verwenden:

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

Die oben genannte Methode hilft, die Antwort zu erhalten.

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