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

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,并将最后一个字母替换为空(删除它),但每次我运行程序时,它都会删除与最后一个字母相同的中间字母。

例如,单词是“仰慕者”;在我运行这个方法之后,我得到了“钦佩”。我想让它回复“钦佩”这个词。


当前回答

简单的任务怎么变得复杂?我的解决方案是:

public String removeLastChar(String s) {
    return s[0..-1]
}

or

public String removeLastChar(String s) {
    if (s.length() > 0) {
        return s[0..-1]
    }
    return s
}

其他回答

public String removeLastChar(String s) {
    if (s == null || s.length() == 0) {
        return s;
    }
    return s.substring(0, s.length()-1);
}

在Kotlin中,您可以使用字符串类的dropLast()方法。 它会从字符串中删除给定的数字,返回一个新的字符串

var string1 = "Some Text"
string1 = string1.dropLast(1)

容易Peasy:

StringBuilder sb= new StringBuilder();
for(Entry<String,String> entry : map.entrySet()) {
        sb.append(entry.getKey() + "_" + entry.getValue() + "|");
}
String requiredString = sb.substring(0, sb.length() - 1);
 string = string.substring(0, (string.length() - 1));

我在我的代码中使用这个,它很容易和简单。 它只在字符串为> 0时起作用。 我把它连接到一个按钮和下面的if语句

if (string.length() > 0) {
    string = string.substring(0, (string.length() - 1));
}

用这个:

 if(string.endsWith("x")) {

    string= string.substring(0, string.length() - 1);
 }