Was ist das Äquivalent C # Methode zu dieser grundlegenden Java-Methode?
-
05-09-2019 - |
Frage
wirklich einfache Frage hier (mehr, um meine Gedanken zu bestätigen, als alles) ...
Java-Methode: [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));
Der Grund, warum i-Methode in der Dokumentation der Java löschen bin nicht sicher. Er sagt,
Der Teil beginnt an dem angegebenen beginnen und sich bis zu dem Zeichen an Index Ende - 1 oder bis zum Ende der String wenn kein solches Zeichen existiert
Ich bin nur nicht sicher, ob dies Ende -. 1 Bit dieses Zitat .. und wenn ich die Dinge haben könnte fraked up
cheers:)
edit: Heh. Ich wusste, dass es die letzten zwei Zeichen aus der Zeichenfolge wurde gelöscht, aber ich war die Umwandlung genau zu halten, meinen ausführlichen Code Hencse. :)
Lösung
Um die letzten zwei Zeichen löschen Sie würde schreiben:
sb.Remove(sb.Length - 2, 2);
Andere Tipps
Ja, das ist richtig. Das „Ende - 1“. Das bedeutet, dass, wenn Sie löschen aufrufen (2, 8) ist es die Zeichen mit dem Index 2 bis 7 löscht, aber nicht das Zeichen mit dem Index 8
So, Ihr Code korrekt ist. Jedoch sind einige mathematische Fähigkeiten würde sich als nützlich hier, und Sie würden sehen, dass:
x - (x - 2)
= x - x + 2
= (x - x) + 2
= 0 + 2
= 2
Machen Sie den Code:
sb.Remove(sb.Length - 2, 2);
Eine andere Möglichkeit, die gleiche Sache zu tun wäre:
sb.Length -= 2;
In dem Lösch Aufruf in Java entfernt es Zeichen von Anfang bis-1 zu beenden. Der C # Anruf entfernt stattdessen eine Zeichenfolge von Anfang für wie lange Sie angeben.