您的位置:

Java中如何去掉字符串最后一个字符

一、使用substring方法去除最后一个字符

如果要去掉字符串中最后一个字符,可以使用substring方法,将字符串截取为除了最后一个字符之外的子字符串:

public static String removeLastChar(String str) {
    return str.substring(0, str.length()-1);
}

这里的substring方法传入两个参数,第一个参数为起始位置,第二个参数为结束位置,其中结束位置不包含在截取结果中。因此,这里的第二个参数为字符串长度减一,即保留除了最后一个字符以外的所有字符。

二、使用StringBuilder的delete方法去除最后一个字符

另外一种方法是使用StringBuilder类,将字符串转换为可修改的StringBuilder实例,然后使用delete方法删除最后一个字符:

public static String removeLastChar(String str) {
    StringBuilder sb = new StringBuilder(str);
    sb.deleteCharAt(str.length()-1);
    return sb.toString();
}

这里的deleteCharAt方法传入的参数为要删除的字符的下标,因此这里直接使用str.length()-1作为参数即可删除最后一个字符。

三、使用正则表达式去除最后一个字符

还可以使用正则表达式,将最后一个字符替换为空字符串:

public static String removeLastChar(String str) {
    return str.replaceAll(".$", "");
}

这里的$表示匹配字符串的结尾位置,因此.$匹配最后一个字符,将其替换为空字符串即可实现去除最后一个字符的效果。

四、注意事项

需要注意的是,如果字符串本身为空字符串,或者只包含一个字符,以上方法会抛出异常或得到错误的结果。可以通过加入空字符串和长度判断的方式来避免这种情况的发生。

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

以上方法可以保证字符串为空或只包含一个字符时返回空字符串,否则返回去除最后一个字符之后的子串。