这个基本的Java方法的等效C#方法是什么?


2

真的很简单的问题在这里(更多的确认我的想法,比任何东西)...

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删除方法的文档。它说

子字符串开始在指定的 开始并延伸到人物在 指数结束 - 1到 StringBuffer的结束,如果没有这样的字符 存在

我只是不太确定这个年底 - 即报价1位..如果我有可能fraked东西。

干杯:)

编辑:嘿。我知道它从字符串中删除了最后2个字符,但是我确实保留了转换,hencse我的详细代码。 :)

2

要删除最后2个字符,你会写:

sb.Remove(sb.Length - 2, 2); 

0

在Java中删除调用它从开始到结束,1删除字符。 C#调用将从指定的长度开始删除一个字符串。


1

是的,这是正确的。 “结束 - 1”意味着如果你调用delete(2,8),它通过7删除索引2字符,而不是字符与指数8

所以,你的代码是正确的。然而,一些数学技能就派上用场了,您会看到:

x - (x - 2) 
= x - x + 2 
= (x - x) + 2 
= 0 + 2 
= 2 

使得代码:

sb.Remove(sb.Length - 2, 2); 

做同样的事情的另一种方法是:

sb.Length -= 2;