~~ Je pensais qu'il avait été préparé par la méthode standard de StringBuilder, mais je ne pouvais pas le trouver quelle que soit la façon dont je cherchais, alors je l'ai fait moi-même. ~~ ↑ C'était une description trompeuse ...
Je me suis demandé s'il y avait une méthode spécialisée pour effacer le nombre spécifié de caractères à la fin, mais je ne l'ai pas trouvée quand je l'ai recherchée, alors je l'ai faite moi-même. est.
public class Demo {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("hoge");
//Supprimer un caractère de la fin
sb.setLength(sb.length()-1);
//Résultat d'exécution: porc
System.out.println(sb);
}
}
setlength
Définit la longueur de la chaîne de séquence.
length()
Renvoie la longueur actuelle de la chaîne. Dans l'exemple ci-dessus, 4 est renvoyé.
Il ne vous reste plus qu'à soustraire le nombre de caractères que vous souhaitez supprimer de `` length () ''.
Notez que si vous spécifiez une longueur de chaîne inférieure à 0, vous obtiendrez une erreur `` java.lang.StringIndexOutOfBoundsException ''.
StringBuilder sb = new StringBuilder("hoge");
sb.setLength(sb.length()-5);
//Erreur: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
setlength
Avant de fairestringbuilder
Il peut être préférable de vérifier la longueur de.
//Si n caractères ou plus, supprimez n caractères à la fin
if (sb.length() >= n) {
sb.setLength(sb.length()-n);
}
delete(int start, int end)
Est la façon d'utiliser.
Je vous l'ai dit dans les commentaires.
Je l'ai d'abord inventé, mais j'ai pensé qu'il était nécessaire de spécifier à la fois la position de départ et la position de fin, et la lisibilité était faible, alors je l'ai rejetée.
length()
Je pensais que j'avais besoin d'écrire deux fois ...
En premier lieu, si vous avez length () dans une variable, vous ne devez l'écrire qu'une seule fois! Ce n'est pas une mauvaise lisibilité! J'ai pensé à nouveau. Si vous avez le mot supprimer, il est facile de comprendre que vous souhaitez supprimer le caractère.
StringBuilder sb = new StringBuilder("hoge");
int n = 2; //Nombre de caractères que vous souhaitez supprimer à la fin
int size = sb.length(); // length()Dans une variable de type int
//Suppression de la phrase de deux lettres à la fin
sb.delete(size-n, size);
//Résultat d'exécution: ho
System.out.println(sb);
Les notes sont identiques à l'exemple de code source ①, elles sont donc omises.
deletecharat(int index)
Est la façon d'utiliser.
Je vous l'ai également dit dans les commentaires.
Dans ce cas, vous ne pouvez ** supprimer qu'un seul caractère à la fin **. Veuillez noter que vous ne pouvez pas supprimer plusieurs caractères à la fin **.
Cependant, je pense qu'il est (personnellement) plus lisible que les deux exemples de codes source ci-dessus. Je montrais brillamment la documentation officielle, mais je ne pouvais pas du tout la remarquer. Je vais donc le mentionner dans le commandement.
StringBuilder sb = new StringBuilder("hoge");
//Supprimer un caractère de la fin
sb.deleteCharAt(sb.length()-1);
//Résultat d'exécution: porc
System.out.println(sb);
Veuillez me faire savoir s'il existe une meilleure mise en œuvre.
StringBuilder (Java Platform SE 8)
Recommended Posts