Je veux supprimer le dernier caractère d'une chaîne de caractères. J'ai essayé de le faire :
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;
}
}
Obtenir la longueur de la chaîne - 1 et remplacer la dernière lettre par rien (la supprimer), mais à chaque fois que j'exécute le programme, il supprime les lettres du milieu qui sont identiques à la dernière lettre.
Par exemple, le mot est "admirer" ; après avoir exécuté la méthode, j'obtiens "admie." ; je veux qu'elle renvoie le mot admirer.
replace
remplacera toutes les instances d'une lettre. Tout ce que vous avez à faire est d'utiliser [substring()
][1] :
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;
}
[1] : http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring(int,%20int)
Pourquoi pas une seule ligne ?
private static String removeLastChar(String str) {
return str.substring(0, str.length() - 1);
}
Code complet
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);
}
}