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. :)

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top