Ich möchte das letzte Zeichen aus einer Zeichenfolge zu entfernen. I've versucht, dies zu tun:
public String method(String str) {
if (str.charAt(str.length()-1)=='x'){
str = str.replace(str.substring(str.length()-1), "");
return str;
} else{
return str;
}
}
Ich ermittle die Länge der Zeichenkette - 1 und ersetze den letzten Buchstaben durch nichts (ich lösche ihn), aber jedes Mal, wenn ich das Programm ausführe, löscht es die mittleren Buchstaben, die mit dem letzten Buchstaben identisch sind.
Das Wort ist zum Beispiel "admirer" nachdem ich die Methode ausgeführt habe, erhalte ich "admie." Ich möchte, dass es das Wort admire zurückgibt.
replace
ersetzt alle Instanzen eines Buchstabens. Alles, was Sie tun müssen, ist substring()
zu verwenden:
public String method(String str) {
if (str != null && str.length() > 0 && str.charAt(str.length() - 1) == 'x') {
str = str.substring(0, str.length() - 1);
}
return str;
}
Warum nicht nur eine Zeile?
private static String removeLastChar(String str) {
return str.substring(0, str.length() - 1);
}
Vollständiger Code
import java.util.*;
import java.lang.*;
public class Main {
public static void main (String[] args) throws java.lang.Exception {
String s1 = "Remove Last CharacterY";
String s2 = "Remove Last Character2";
System.out.println("After removing s1==" + removeLastChar(s1) + "==");
System.out.println("After removing s2==" + removeLastChar(s2) + "==");
}
private static String removeLastChar(String str) {
return str.substring(0, str.length() - 1);
}
}