java删除字符串中最后一个字符

最近刷题遇到需求: 需要删除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);

缺点是如果头部也有空白,也会随着一起删除。

经验分享 程序员 微信小程序 职场和发展