¿Cómo eliminar el último carácter de una cadena?
Resuelto
asked hace 13 años
•
36 respuestas
Quiero eliminar el último carácter de una cadena. Intenté hacer esto:
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;
}
}
Obteniendo la longitud de la cadena - 1 y reemplazando la última letra con nada (eliminándola), pero cada vez que ejecuto el programa, elimina las letras del medio que son iguales a la última letra.
Por ejemplo, la palabra es "admirador"; Después de ejecutar el método, aparece "admie". Quiero que devuelva la palabra admirar.
Aceptado
replace
reemplazará todas las instancias de una letra. Todo lo que necesitas hacer es usar substring()
:
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;
}
¿Por qué no una sola línea?
public static String removeLastChar(String str) {
return removeChars(str, 1);
}
public static String removeChars(String str, int numberOfCharactersToRemove) {
if(str != null && !str.trim().isEmpty()) {
return str.substring(0, str.length() - numberOfCharactersToRemove);
}
return "";
}
Código completo
public class Main
{
public static void main (String[] args) throws java.lang.Exception
{
String s1 = "Remove Last CharacterY";
String s2 = "Remove Last Character2";
String s3 = "N";
String s4 = null;
String s5 = "";
System.out.println("After removing s1==" + removeLastChar(s1) + "==");
System.out.println("After removing s2==" + removeLastChar(s2) + "==");
System.out.println("After removing s3==" + removeLastChar(s3) + "==");
System.out.println("After removing s4==" + removeLastChar(s4) + "==");
System.out.println("After removing s5==" + removeLastChar(s5) + "==");
}
public static String removeLastChar(String str) {
return removeChars(str, 1);
}
public static String removeChars(String str, int numberOfCharactersToRemove) {
if(str != null && !str.trim().isEmpty()) {
return str.substring(0, str.length() - numberOfCharactersToRemove);
}
return "";
}
}