这里真的很简单(更多的是确认我的想法,而不是任何事情)......
Java方法:[StringBuffer.Delete] 1;
[1]:http://java.sun.com/j2se/1.4.2/docs/api/java/lang/StringBuffer.html#delete(int,int)
Java Code: sb.delete(sb.length()-2, sb.length());
C# (not sure if this is right):
StringBuilder sb = new StringBuilder();
....
sb.Remove(sb.Length - 2, sb.Length - (sb.Length - 2));
我不确定的原因是在java delete方法的文档中。它说
子字符串从指定的开始 开始并延伸到角色 index end - 1或结尾 StringBuffer如果没有这样的字符 存在
我对这个 end - 1 这个引言并不太确定......如果我可能已经搞砸了。
欢呼:) 编辑:嘿。我知道它正在删除字符串中的最后2个字符,但我确保转换完全正确,请查看我的详细代码。 :)答案 0 :(得分:2)
要删除您要写的最后2个字符:
sb.Remove(sb.Length - 2, 2);
答案 1 :(得分:1)
是的,这是正确的。 “end-1”表示如果调用delete(2,8),则删除索引为2到7的字符,但不删除索引为8的字符。
所以,你的代码是正确的。然而,一些数学技能在这里会派上用场,你会看到:
x - (x - 2)
= x - x + 2
= (x - x) + 2
= 0 + 2
= 2
制作代码:
sb.Remove(sb.Length - 2, 2);
另一种做同样事情的方法是:
sb.Length -= 2;
答案 2 :(得分:0)
在Java中的删除调用中,它从开始到结束1删除字符。无论您指定多长时间,C#调用都会从start中删除一个字符串。