Quelle est la méthode équivalente C # à cette méthode Java de base?
-
05-09-2019 - |
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. :)
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.