一、使用substring()方法
Java字符串的substring()方法可以截取字符串的一部分,只需要传入截取的起始位置和终止位置即可,如下所示:
String str = "abcdef"; String newStr = str.substring(0, str.length() - 1); System.out.println(newStr); //输出结果为"abcde"
以上代码中,substring()方法中的起始位置是0,终止位置是字符串长度减1,即去掉了字符串的最后一位。
需要注意的是,如果字符串本身为空或者长度为0,那么使用substring()方法会报StringIndexOutOfBoundsException异常。
此外,如果需要去掉多个结尾字符,可以在终止位置上减去需要去掉字符个数的值即可。
二、使用StringBuilder或StringBuffer类的deleteCharAt()方法
StringBuilder和StringBuffer都是可变字符串类型,提供了删除指定位置字符的方法deleteCharAt(),只需要指定要删除字符的位置即可。具体实现如下:
String str = "abcdef"; StringBuilder stringBuilder = new StringBuilder(str); stringBuilder.deleteCharAt(str.length() - 1); String newStr = stringBuilder.toString(); System.out.println(newStr); //输出结果为"abcde"
同样的,如果需要删除多个结尾字符,可以在删除字符时循环多次删除即可。
三、使用正则表达式
使用正则表达式可以方便地处理字符串中的各种情况,如下所示:
String str = "abcdef"; String newStr = str.replaceAll(".$", ""); System.out.println(newStr); //输出结果为"abcde"
这里的正则表达式“.$”表示字符串结尾的任意一个字符,使用空字符串替换即可去掉该字符。
上述三种方法均可以实现去掉字符串结尾的一个字符或多个字符的功能,选用哪种方法主要是看具体情况,例如需要对可变字符串做操作时可以选择使用StringBuilder或StringBuffer,正则表达式对于复杂的字符串删除可以做到一步到位。