So entfernen Sie einzelne Zeichen aus einem String nach Index
Lesezeit: 3 Minuten
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
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
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
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:
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);
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;
}
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();
13445800cookie-checkSo entfernen Sie einzelne Zeichen aus einem String nach Indexyes
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
vonsubstring
undindexOf
. 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