如何从字符串中删除最后一个字符?

2022-08-31 04:16:22

我想从字符串中删除最后一个字符。我尝试过这样做:

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;
    }
}

获取字符串的长度 - 1 并将最后一个字母替换为任何内容(删除它),但每次我运行程序时,它都会删除与最后一个字母相同的中间字母。

例如,这个词是“崇拜者”;运行该方法后,我得到“admie”。我希望它能把“钦佩”这个词还回来。


答案 1

replace将替换字母的所有实例。您需要做的就是使用 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;
}

答案 2

为什么不只用一个衬垫?

public static String removeLastChar(String str) {
    return removeLastChars(str, 1);
}

public static String removeLastChars(String str, int chars) {
    return str.substring(0, str.length() - chars);
}

完整代码

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) + "==");
    }
    
    public static String removeLastChar(String str) {
        return removeLastChars(str, 1);
    }

    public static String removeLastChars(String str, int chars) {
        return str.substring(0, str.length() - chars);
    }
}

演示