删除字符串的第二个最后一个字符的简洁方法是什么?
e.g。 “abcde”变成“abce”
无需检查字符串是否足够长。
答案 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();
}
答案 7 :(得分:0)
"abcde".replaceAll ("(.*).(.)", "$1$2")
它使用正则表达式,搜索我们稍后要引用的一些字符$ 1,加上一个要忘记的字符,另一个终止字符记住字符串2($ 2)。