删除字符串的第二个最后一个字符的好方法是什么?

时间:2012-02-08 21:25:12

标签: java

删除字符串的第二个最后一个字符的简洁方法是什么?

e.g。 “abcde”变成“abce”

无需检查字符串是否足够长。

8 个答案:

答案 0 :(得分:7)

return new StringBuilder(str)
  .deleteCharAt(str.length() - 2)
  .toString();

我怀疑这是快速,紧凑,可理解的。

答案 1 :(得分:2)

除最后两个字符外,取所有字符,取最后一个字符并连接它们。假设字符串至少为2个字符,代码很简单。 Hint

答案 2 :(得分:2)

String input = "abcde";
int length = input.size();
String result = input.substring(0, length  - 2) + input.substring(length, length);

答案 3 :(得分:2)

public String getAllButSecondLast(final String input)
{
  return input.substring(0, input.length() - 2) + input.charAt(input.length() - 1);

}

当然,这不提供空检查或长度检查(必须至少2个字符)。

答案 4 :(得分:1)

String test = "abcde";
StringBuilder sb = new StringBuilder(test);
sb.deleteCharAt(test.length()-2);
String newString = sb.toString();

警告:这不会测试前手的长度,但这就是你要求的。

答案 5 :(得分:1)

String a = "abcde";
a = a.substring(0, a.length() - 2) + a.substring(a.length() - 1);

答案 6 :(得分:1)

获得最后第二名= str.length - 2;

public static String removeCharAt(String s, int pos) {
       StringBuffer buf = new StringBuffer( s.length() - 1 );
       buf.append( s.substring(0,pos) ).append( s.substring(pos+1) );
       return buf.toString();
}

http://www.rgagnon.com/javadetails/java-0030.html

答案 7 :(得分:0)

"abcde".replaceAll ("(.*).(.)", "$1$2") 

它使用正则表达式,搜索我们稍后要引用的一些字符$ 1,加上一个要忘记的字符,另一个终止字符记住字符串2($ 2)。