最近刷题遇到需求: 需要删除String类型的最后一个字符。
形如a,b,c,d,e,f,
删除最后一个逗号
或是helloworld!
删除最后一个感叹号
方法:使用str.substring
String str = "a,b,c,d,e,f,";
str = str.substring(0,str.length()-1);
简单介绍一下substring用法:
str.substring(startidx,endidx);
substring返回一段字符串。
其中:
- startidx为substring的起始index
- endidx为substring的结束index
而substring返回二者之间的字符串,且不包含index为endidx的字符。
如方法1中的用例,返回的是第0个字符到最后一个字符(不包括)的字符串,即去掉最后一个字符的字符串。
同样,我们可以做到删除指定位数的字符:
public static String removeCharAt(String s, int pos) {
return s.substring(0, pos) + s.substring(pos + 1);
}
特殊情况
值得一提的是,如果最后需要删除的是空格,如我写了一段输出函数
String[] str = sc.nextLine().split(" ");
Arrays.sort(str);
for(String s : str){
tmp+=s+" ";
}
System.out.println(tmp);
在拼接的最后一步会多一个空格出来,删除时可以用str.trim()方法,trim()方法返回删除头尾空白符的字符串。
tmp = tmp.trim();
System.out.println(tmp);
缺点是如果头部也有空白,也会随着一起删除。