一、使用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); }
以上方法可以保证字符串为空或只包含一个字符时返回空字符串,否则返回去除最后一个字符之后的子串。