2009-02-22 58 views
2

真的很簡單的問題在這裏(更多的確認我的想法,比任何東西)...這個基本的Java方法的等效C#方法是什麼?

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; 
相關問題