Ik wil het laatste teken uit een string verwijderen. Ik heb geprobeerd dit te doen:
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;
}
}
De lengte van de tekenreeks krijgen - 1 en de laatste letter vervangen door niets (verwijderen), maar elke keer als ik het programma uitvoer, verwijdert het middelste letters die hetzelfde zijn als de laatste letter.
Bijvoorbeeld, het woord is "admirer" nadat ik de methode heb uitgevoerd, krijg ik "admie." Ik wil dat het het woord admire teruggeeft.
replace
zal alle instanties van een letter vervangen. Het enige wat je hoeft te doen is substring()
te gebruiken:
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;
}
Waarom niet gewoon één lijntje?
private static String removeLastChar(String str) {
return str.substring(0, str.length() - 1);
}
Volledige 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);
}
}