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

新手上路,请多包涵

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

 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”。我希望它返回佩服这个词。

原文由 duaprog137 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 421
2 个回答

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

原文由 Gyan aka Gary Buyn 发布,翻译遵循 CC BY-SA 3.0 许可协议

为什么不只有一个班轮?

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

演示

原文由 Fahim Parkar 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题