Lors de la modification de chaînes, vous devez utiliser les classes StringBuffer et StringBuilder.
Contrairement à la classe String, les objets des classes StringBuffer et StringBuilder peuvent être modifiés plusieurs fois sans créer de nouveaux objets inutilisés.
La classe StringBuilder a été proposée dans Java 5. La plus grande différence entre elle et StringBuffer est que StringBuilder La méthode n'est pas thread-safe (la sécurité des threads signifie que lors d'un accès multi-threads, un mécanisme de verrouillage est utilisé. Lorsqu'un thread accède à certaines données de cette classe, il est protégé et les autres threads ne peuvent pas y accéder jusqu'à ce que le thread ait fini de lire. Autres threads Il peut être utilisé.Il n'y aura pas d'incohérence ou de pollution des données.Thread non sécurisé signifie que la protection contre l'accès aux données n'est pas fournie et qu'il est possible que plusieurs threads modifient les données successivement et que les données résultantes soient des données sales).
Étant donné que StringBuilder présente un avantage en termes de vitesse par rapport à StringBuffer, il est recommandé d'utiliser la classe StringBuilder dans la plupart des cas. Cependant, lorsque l'application nécessite une sécurité des threads, la classe StringBuffer doit être utilisée.
public class Test{ public static void main(String args[]){ StringBuffer sBuffer = new StringBuffer(" test"); sBuffer.append(" String Buffer"); System.out.println(sBuffer); } }
Les résultats de compilation et d'exécution de l'exemple ci-dessus sont les suivants :
test String Buffer
Voici les principales méthodes prises en charge par la classe StringBuffer :
numéro de série | Description de la méthode |
---|---|
1 | public StringBuffer append(String s) Ajoute la chaîne spécifiée à cette séquence de caractères. |
2 | public StringBuffer reverse() Remplace cette séquence de caractères par sa forme inversée. |
3 | public delete(int start, int end) Supprime les caractères d'une sous-chaîne de cette séquence. |
4 | public insert(int offset, int i) Insère la représentation sous forme de chaîne de l'argument int dans cette séquence. |
5 | replace(int start, int end, String str) Remplace les caractères d'une sous-chaîne de cette séquence par les caractères de la String donnée. |
Les méthodes de la liste suivante sont similaires à celles de la classe String :
numéro de série | Description de la méthode |
1 | int capacité() renvoie la capacité actuelle. |
2 | char charAt(int index) Renvoie la valeur char à l'index spécifié dans cette séquence. |
3 | void EnsureCapacity(int minimumCapacity) Garantit que la capacité est au moins égale au minimum spécifié. |
4 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) Copie les caractères de cette séquence dans le tableau de caractères cible dst . |
5 | int indexOf(String str) Renvoie l'index de la première occurrence de la sous-chaîne spécifiée dans la chaîne. |
6 | int indexOf(String str, int fromIndex) En commençant à l'index spécifié, renvoie l'index de la première occurrence de la sous-chaîne spécifiée dans la chaîne. |
7 | int lastIndexOf(String str) Renvoie l'index dans cette chaîne de l'occurrence la plus à droite de la sous-chaîne spécifiée. |
8 | int lastIndexOf(String str, int fromIndex) Renvoie l'index dans cette chaîne de la dernière occurrence de la sous-chaîne spécifiée. |
9 | int length() renvoie la longueur en caractères. |
10 | void setCharAt(int index, char ch) Définit le caractère à l'index donné sur ch . |
11 | void setLength(int newLength) Définit la longueur de la séquence de caractères. |
12 | CharSequence subSequence(int start, int end) Renvoie une nouvelle séquence de caractères qui est une sous-séquence de cette séquence. |
13 | String substring(int start) Renvoie une nouvelle String contenant la sous-séquence de caractères actuellement contenue par cette séquence de caractères. |
14 | String substring(int start, int end) Renvoie une nouvelle String contenant la sous-séquence de caractères actuellement contenue par cette séquence. |
15 | String toString() Renvoie la représentation sous forme de chaîne des données dans cette séquence. |