Java - Das letzte Zeichen aus dem String Builder in Java entfernen
Das Entfernen des letzten Zeichens aus dem StringBuilder in Java ist einfach. StringBuilder hat die Methode deleteCharAt() eingebaut. Als Parameter soll man die aktuelle Länge des StringBuilders übergeben.
Syntax:
xxxxxxxxxx
StringBuilder builder = new StringBuilder();
builder.deleteCharAt( builder.length() - 1 );
xxxxxxxxxx
public class Example {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder();
builder.append("1234");
System.out.println( builder.toString() ); // 1234
builder.deleteCharAt( builder.length() - 1 );
System.out.println( builder.toString() ); // 123
}
}
Um das letzte Zeichen in Java sicher aus dem StringBuilder zu entfernen, muss man die Länge von StringBuilder überprüfen. Falls es nicht gemacht wird und der StringBuilder länger wird, erhält man die folgende Meldung:
java.lang.StringIndexOutOfBoundsException
Ein Beispiel mit sicherer Methode zum Entfernen des letzten Zeichens:
xxxxxxxxxx
public class Example {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder();
builder.append("1234");
System.out.println( builder.toString() ); // 1234
removeLastChar(builder);
System.out.println( builder.toString() ); // 123
}
public static void removeLastChar(StringBuilder builder) {
if (builder.length() > 0) {
builder.deleteCharAt( builder.length() - 1 );
}
}
}
Mit dieser Methode kann man die folgende Ausnahme vermeiden:
xxxxxxxxxx
Exception in thread "main" java.lang.StringIndexOutOfBoundsException:
String index out of range: -1
at java.lang.AbstractStringBuilder.deleteCharAt(AbstractStringBuilder.java:824)
at java.lang.StringBuilder.deleteCharAt(StringBuilder.java:253)
Dieses Beispiel erweitert das vorherige. Hier fügt man nur eine weitere Bedingung hinzu. Man muss überprüfen, ob der letzte Buchstabe von StringBuilder dem Buchstaben entspricht, den man finden will.
xxxxxxxxxx
public class Example {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder();
builder.append("1234a");
System.out.println( builder.toString() ); // 1234a
removeLastChar(builder, 'a');
System.out.println( builder.toString() ); // 1234
}
public static void removeLastChar(StringBuilder builder, char letter) {
if (builder.length() > 0 && builder.charAt(builder.length() - 1) == letter) {
builder.deleteCharAt(builder.length() - 1);
}
}
}