So entfernen Sie einzelne Zeichen aus einem String nach Index

Lesezeit: 3 Minuten

Benutzer-Avatar
Vikram

Für den Zugriff auf einzelne Zeichen eines Strings in Java haben wir String.charAt(2). Gibt es eine eingebaute Funktion, um ein einzelnes Zeichen eines Strings in Java zu entfernen?

Etwas wie das:

if(String.charAt(1) == String.charAt(2){
   //I want to remove the individual character at index 2. 
}

  • Können Sie ein echtes Beispiel posten, wo Sie dies tun möchten?

    – Rohit Jain

    14. November 2012 um 19:43 Uhr

  • Sie müssen ersetzen, nicht entfernen. Möglicherweise müssen Sie Ihre eigenen schreiben.

    – kosa

    14. November 2012 um 19:43 Uhr

  • Sie können es mit einem tun couple von substring und indexOf. Aber das wird ein neues String-Objekt erstellen.

    – Rohit Jain

    14. November 2012 um 19:44 Uhr


  • StringBuilder ist eine Lese-/Schreibklasse zum Manipulieren von Zeichen. Sie können es aus einem String erstellen und sb.toString() verwenden, um den resultierenden String zu erhalten.

    – Aubin

    14. November 2012 um 19:50 Uhr


Benutzer-Avatar
Bhesh Gurung

Sie können auch die verwenden StringBuilder Klasse, die veränderlich ist.

StringBuilder sb = new StringBuilder(inputString);

Es hat die Methode deleteCharAt()zusammen mit vielen anderen Mutatormethoden.

Löschen Sie einfach die Zeichen, die Sie löschen müssen, und erhalten Sie dann das Ergebnis wie folgt:

String resultString = sb.toString();

Dadurch wird die Erstellung unnötiger String-Objekte vermieden.

  • Ihre Antwort scheint hier nicht zu funktionieren … String numbers = "0123456789"; char c = '2'; numbers = numbers.replace(c, Character.MIN_VALUE); Ich möchte das Zeichen ‘ ‘ ersetzen (leer)

    – Surajit Biswas

    3. Juli 2020 um 14:52 Uhr


Benutzer-Avatar
Thuy

Sie können die Java-String-Methode namens replace verwenden, die alle Zeichen, die mit dem ersten Parameter übereinstimmen, durch den zweiten Parameter ersetzt:

String a = "Cool";
a = a.replace("o","");

  • es beantwortet nicht die Frage, wie man es entfernt Index.

    – Walv

    22. Oktober 2021 um 2:59 Uhr

Eine Möglichkeit:

String result = str.substring(0, index) + str.substring(index+1);

Beachten Sie, dass das Ergebnis ein neuer String ist (sowie zwei dazwischenliegende String-Objekte), da Strings in Java unveränderlich sind.

  • Dies funktioniert, es sei denn, der Index verweist auf das letzte Zeichen der Zeichenfolge.

    – Alex K

    3. September 2021 um 16:46 Uhr

  • @AlexK Nein, es funktioniert gut mit dem letzten Zeichen. Wann index ist dann das letzte Zeichen index+1 gleich der Länge der Zeichenfolge ist, und str.substring(str.length) gibt einen leeren String zurück.

    – RoToRa

    1. April um 16:44 Uhr

Benutzer-Avatar
Oscar López

Nein, weil Strings in Java unveränderlich sind. Sie müssen eine neue Zeichenfolge erstellen und das nicht gewünschte Zeichen entfernen.

Zum Ersetzen eines einzelnen Zeichens c an Indexposition idx in Schnur strtun Sie so etwas und denken Sie daran, dass eine neue Zeichenfolge erstellt wird:

String newstr = str.substring(0, idx) + str.substring(idx + 1);

Benutzer-Avatar
Yash

String str = "M1y java8 Progr5am";

deleteCharAt()

StringBuilder build = new StringBuilder(str);
System.out.println("Pre Builder : " + build);
    build.deleteCharAt(1);  // Shift the positions front.
    build.deleteCharAt(8-1);
    build.deleteCharAt(15-2);
System.out.println("Post Builder : " + build);

ersetzen()

StringBuffer buffer = new StringBuffer(str);
    buffer.replace(1, 2, ""); // Shift the positions front.
    buffer.replace(7, 8, "");
    buffer.replace(13, 14, "");
System.out.println("Buffer : "+buffer);

verkohlen[]

char[] c = str.toCharArray();
String new_Str = "";
    for (int i = 0; i < c.length; i++) {
        if (!(i == 1 || i == 8 || i == 15)) 
            new_Str += c[i];
    }
System.out.println("Char Array : "+new_Str);

Benutzer-Avatar
Darkstarone

Betrachten Sie den folgenden Code:

public String removeChar(String str, Integer n) {
    String front = str.substring(0, n);
    String back = str.substring(n+1, str.length());
    return front + back;
}

Benutzer-Avatar
BlizzN

Um Strings zu ändern, lesen Sie etwas über StringBuilder, da es mit Ausnahme von unveränderlichen Strings veränderlich ist. Hier finden Sie verschiedene Operationen https://docs.oracle.com/javase/tutorial/java/data/buffers.html. Das folgende Code-Snippet erstellt einen StringBuilder und hängt dann den angegebenen String an und löscht dann das erste Zeichen aus dem String und konvertiert es dann wieder von StringBuilder in einen String.

StringBuilder sb = new StringBuilder();

sb.append(str);
sb.deleteCharAt(0);
str = sb.toString();

1344580cookie-checkSo entfernen Sie einzelne Zeichen aus einem String nach Index

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy