Question

question très simple ici (plus pour confirmer mes pensées, que tout) ...

méthode 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));

La raison pour laquelle je ne suis pas sûr est dans la documentation de la méthode supprimer java. Il dit

  

Le sous-chaîne à l'endroit spécifié   commencer et se prolonge au caractère à   la fin de l'index - 1 ou à la fin de la   StringBuffer si aucun caractère   existe

Je ne suis pas trop sûr de ce fin -. 1 peu de cette citation .. et si je pourrais avoir des choses fraked jusqu'à

hourras:)

edit: Heh. Je savais qu'il supprimait les 2 derniers caractères de la chaîne, mais je gardais la conversion exacte, Hencse mon code bavard. :)

Était-ce utile?

La solution

Pour supprimer les 2 derniers caractères que vous écririez:

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

Autres conseils

Oui, cela est exact. La « fin - 1 ». Signifie que si vous appelez supprimer (2, 8), il supprime les caractères avec l'index 2 à 7, mais pas le caractère d'indice 8

Alors, votre code est correct. Cependant, certaines compétences en mathématiques me serait utile ici, et vous verrez que:

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

Faire le code:

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

Une autre façon de faire la même chose serait:

sb.Length -= 2;

Dans l'appel de suppression en Java, il supprime le caractère du début à la fin-1. Le C # appel supprime à la place une chaîne de début aussi longtemps que vous spécifiez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top