[Java] Löschen Sie die angegebene Anzahl von Zeichen am Ende von StringBuilder

Einführung

~~ Ich dachte, es wurde mit der Standardmethode von StringBuilder erstellt, aber ich konnte es nicht finden, egal wie ich gesucht habe, also habe ich es selbst gemacht. ~~ ↑ Es war eine irreführende Beschreibung ...

Ich fragte mich, ob es eine Methode gab, die darauf spezialisiert war, die angegebene Anzahl von Zeichen am Ende zu löschen, aber ich konnte sie nicht finden, als ich danach suchte, also habe ich sie selbst gemacht. ist.

Betriebsüberprüfungsumgebung

Beispielquellcode ①

public class Demo {
    public static void main(String[] args) {
    	StringBuilder sb = new StringBuilder("hoge");

        //Löschen Sie ein Zeichen am Ende
    	sb.setLength(sb.length()-1);

        //Ausführungsergebnis: Schwein
    	System.out.println(sb);
    }
}

setlengthLegt die Länge der Sequenzzeichenfolge fest.

length()Gibt die aktuelle Länge der Zeichenfolge zurück. Im obigen Beispiel wird 4 zurückgegeben. Jetzt müssen Sie nur noch die Anzahl der Zeichen, die Sie löschen möchten, von `length ()` subtrahieren.

Beachten Sie, dass bei Angabe einer Zeichenfolgenlänge unter 0 die Fehlermeldung "java.lang.StringIndexOutOfBoundsException" angezeigt wird.

StringBuilder sb = new StringBuilder("hoge");
sb.setLength(sb.length()-5);
//Fehler: Java.lang.StringIndexOutOfBoundsException: String index out of range: -1

setlengthBevor du es tuststringbuilderEs kann besser sein, die Länge von zu überprüfen.

//Wenn n Zeichen oder mehr vorhanden sind, löschen Sie n Zeichen am Ende
if (sb.length() >= n) {
	sb.setLength(sb.length()-n);
}

Beispielquellcode ②

delete(int start, int end)Ist der Weg zu benutzen. Ich habe es dir in den Kommentaren gesagt.

Ich habe es mir zuerst ausgedacht, aber ich dachte, dass es notwendig ist, sowohl die Startposition als auch die Endposition anzugeben, und die Lesbarkeit war gering, deshalb habe ich es abgelehnt. length()Ich dachte, ich müsste zweimal schreiben ...

Erstens, wenn Sie length () in einer Variablen haben, müssen Sie sie nur einmal schreiben! Es ist keine schlechte Lesbarkeit! Ich dachte noch einmal. Wenn Sie das Wort "Löschen" haben, ist es leicht zu verstehen, dass Sie das Zeichen löschen möchten.

StringBuilder sb = new StringBuilder("hoge");

int n = 2;              //Anzahl der Zeichen, die Sie am Ende löschen möchten
int size = sb.length(); // length()In einer Variablen vom Typ int

//Satz mit zwei Buchstaben vom Ende entfernt
sb.delete(size-n, size);

//Ausführungsergebnis: ho
System.out.println(sb);

Die Notizen sind mit dem Beispielquellcode ① identisch, daher werden sie weggelassen.

Beispielquellcode ③

deletecharat(int index)Ist der Weg zu benutzen. Ich habe es dir auch in den Kommentaren gesagt.

In diesem Fall können Sie ** nur ein Zeichen am Ende löschen **. Bitte beachten Sie, dass Sie nicht mehrere Zeichen am Ende löschen können **.

Ich denke jedoch, dass es (persönlich) besser lesbar ist als die beiden oben genannten Beispielquellcodes. Ich habe die offizielle Dokumentation brillant gezeigt, aber ich konnte es überhaupt nicht bemerken. Also werde ich es im Gebot erwähnen.

StringBuilder sb = new StringBuilder("hoge");

//Löschen Sie ein Zeichen am Ende
sb.deleteCharAt(sb.length()-1);

//Ausführungsergebnis: Schwein
System.out.println(sb);

Am Ende

Bitte lassen Sie mich wissen, ob es eine bessere Implementierung gibt.

Verweise

StringBuilder (Java Platform SE 8)

Recommended Posts

[Java] Löschen Sie die angegebene Anzahl von Zeichen am Ende von StringBuilder
[Java] Überprüfen Sie die Anzahl der Zeichen
[Java] Löschen Sie die Elemente von List
In Java möchte ich mehrere angegebene Zeichen nur von Anfang bis Ende abschneiden.
Wie schreibe ich Scala aus der Perspektive von Java
Java-Sprache aus der Sicht von Kotlin und C #
Ein Programm, das die Anzahl der Wörter in einer Liste zählt
Aggregieren Sie die Anzahl der Personen alle 10 Jahre aus Liste <Person>
[Java] Löschen Sie die angegebene Anzahl von Zeichen am Ende von StringBuilder
Kommen Sie zu den Abkürzungen aus den fünf Beispielen für kursive Java-Listen
Java Ende des Monats plusMonate
Befehl zum Überprüfen der Anzahl und des Status von Java-Threads
Zählen Sie die Anzahl der Stellen nach dem Dezimalpunkt in Java
Aggregieren Sie die Anzahl der Personen alle 10 Jahre aus Liste <Person>
Methode, um die Anzahl der Jahre zu addieren und das Monatsende zu erhalten
Vom jungen Java (3 Jahre) bis zu Node.js (4 Jahre). Und der Eindruck, nach Java zurückzukehren
Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen
[Swift] Die Farbe der Navigationsleiste unterscheidet sich (heller) von der angegebenen Farbe.
Lassen Sie uns die Java 8-Grammatik aus der Sicht der iOS-Ingenieure zusammenfassen
Der Weg von JavaScript nach Java
Der Ursprung von Java-Lambda-Ausdrücken
Erhöhen Sie dynamisch die Anzahl der Elemente in einem zweidimensionalen Java-Array (mehrdimensionales Array).
[Java Servlet] Die Straße von Senri ist auch der fünfte Schritt von einem Schritt
Die Geschichte des Erwerbs von Java Silver in zwei Monaten von völlig unerfahrenen.
Ab Java9 werden Klassenkonstruktoren, die primitiven Typen entsprechen, als veraltet markiert.
Ich habe versucht, die Grammatik von R und Java zu übersetzen [Von Zeit zu Zeit aktualisiert]
[Java] Holen Sie sich MimeType aus dem Inhalt der Datei mit Apathce Tika [Kotlin]
Holen Sie sich das Ergebnis von POST in Java
Überprüfen Sie den Inhalt des Java-Zertifikatspeichers
Untersuchen Sie die Speichernutzung von Java-Elementen
[Java] Ermittelt den Tag eines bestimmten Tages
Anmerkung: [Java] Überprüfen Sie den Inhalt des Verzeichnisses
Kick ShellScript auf dem Server von Java
Rufen Sie die Salesforce REST-API von Java aus auf
Vergleichen Sie Elemente eines Arrays (Java)
So bestimmen Sie die Anzahl der Parallelen
Die Geschichte von RxJava, das unter NoSuchElementException leidet
[Tag: 5] Ich habe die Grundlagen von Java zusammengefasst
Was sind die aktualisierten Funktionen von Java 13
Messen Sie einfach die Größe von Java-Objekten
Rückblick auf die Grundlagen von Java
Löscht nach dem angegebenen Zeichen aus der Zeichenfolge
Ausgabe des Buches "Einführung in Java"
Über die Anzahl der Threads von Completable Future
Die Geschichte des Schreibens von Java in Emacs
Finden Sie den Unterschied von einem Vielfachen von 10
[Java] [Spring] Testen Sie das Verhalten des Loggers
[Förderung des Ruby-Verständnisses (1)] Wenn Sie von Java zu Ruby wechseln, verstehen Sie zuerst den Unterschied.
Inkrementiert durch das dritte Argument der iterierten Methode der aus Java9 hinzugefügten Stream-Klasse
[Java] Tag ab Datum berechnen (Kalenderklasse nicht verwenden)