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:
StringBuilder builder = new StringBuilder();
builder.deleteCharAt( builder.length() - 1 );
1. Das letzte Zeichen entfernen
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
}
}
2. Ein sicher Weg, um das letzte Zeichen zu entfernen
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:
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:
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)
3. Das letzte Zeichen entfernen, wenn es einem bestimmten Zeichen entspricht
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.
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);
}
}
}