Résumez comment gérer les chaînes de caractères en java.
Tout d'abord, le type de chaîne de caractères est décrit, les opérations de base du type String sont résumées et, enfin, les opérations de chaîne de caractères utilisant StringBuilder sont résumées.
Le type String est immuable. Autrement dit, lorsqu'une chaîne de caractères est concaténée ou coupée par une opération, la chaîne de caractères elle-même ne change pas, mais une nouvelle chaîne de caractères est créée dans la zone de stockage. Cela a les caractéristiques suivantes.
―― Comme aucun changement destructeur ne se produit, la maintenabilité du programme est améliorée. --Facile à voir le programme
La classe Mutable (variable) StringBuilder et la classe StringBuffer résolvent cette inefficacité et cette difficulté de fonctionnement.
StringBuilder et StringBuffer sont utilisés de la même manière, la seule différence est que StringBuffer est thread-safe et StringBuilder ne l'est pas. Thread-safe est un terme qui signifie que les problèmes ne se produisent pas lorsque plusieurs threads traitent un code en parallèle.
Par conséquent, lorsque le traitement multi-thread n'est pas effectué, il est préférable d'utiliser StringBuilder, qui est plus rapide car le traitement n'est pas effectué de manière synchrone. Son utilisation sera décrite plus loin.
Effectuez des opérations de base sur la chaîne de caractères de type String suivante S.
String str = "a,b,c";
Obtenez la longueur de la chaîne. La valeur de retour est de type int.
str.length()
La valeur de retour est de type char.
str.charAt(int index)
Vous pouvez combiner des chaînes avec +.
str += "Chaîne de type chaîne"
Divise la chaîne avec le délimiteur spécifié. Si le délimiteur est "", il sera divisé caractère par caractère. La valeur de retour est un tableau de type String.
str.split("Délimiteur")
endIndex peut être omis. Notez que s'il est spécifié, endIndex n'est pas inclus. La valeur de retour est un type String.
str.substring(int beginIndex, int endIndex)
Comme la valeur de référence du type String peut être différente même s'il s'agit de la même chaîne de caractères, elle ne peut pas être comparée à == comme python. La valeur de retour est booléenne.
str.equals("Chaîne de type chaîne")
Avec IgnoreCase, vous pouvez comparer en ignorant les majuscules et les minuscules.
str.equalsIgnoreCase("Chaîne de type chaîne")
Renvoie une valeur numérique de la distance entre la chaîne à comparer et str. Autrement dit, il renvoie une valeur négative si la chaîne à comparer est après str, une valeur positive si elle est avant et 0 si elle correspond. La valeur de retour est de type int.
str.compareTo("Chaîne de type chaîne")
"a".compareTo("b") //-1
"b".compareTo("a") //1
"a".compareTo("a") //0
Ici aussi, si vous ajoutez IgnoreCase, vous pouvez comparer en ignorant les majuscules et les minuscules.
str.compareToIgnoreCase("Chaîne de type chaîne")
Contient-il la chaîne spécifiée? La valeur de retour est booléenne.
str.contains("Chaîne de type chaîne")
Si vous souhaitez utiliser une expression régulière, utilisez la méthode matches.
str.matches("Expressions régulières")
Correspondance de préfixe. La valeur de retour est booléenne.
str.startsWith("Chaîne de type chaîne")
Match en arrière. La valeur de retour est booléenne.
str.endsWith("Chaîne de type chaîne")
Renvoie l'index de la position où la sous-chaîne spécifiée apparaît en premier. Lorsqu'un argument est ajouté, l'index de la position où il apparaît pour la première fois est renvoyé. La valeur de retour est de type int.
str.indexOf("Chaîne de type chaîne")
str.indexOf("Chaîne de type chaîne", int fromIndex)
De même, il existe également une méthode appelée LastindexOf qui renvoie l'index de la dernière position d'occurrence.
str.lastIndexOf("Chaîne de type chaîne")
str.lastIndexOf("Chaîne de type chaîne", int fromIndex)
Si la chaîne spécifiée est incluse, remplacez-les toutes. La valeur de retour est un type String.
str.replace("Chaîne de caractères spécifiée", "Chaîne de remplacement")
Vous pouvez également utiliser des expressions régulières en utilisant replaceAll.
str.replaceAll("Chaîne de caractères spécifiée (expression régulière possible)", "Chaîne de remplacement")
Si vous souhaitez remplacer uniquement la première chaîne de caractères spécifiée, utilisez replaceFirst. Comme replaceAll, replaceFirst peut utiliser des expressions régulières.
str.replaceFirst("Chaîne de caractères spécifiée (expression régulière possible)", "Chaîne de remplacement")
La valeur de retour est un type String.
str.toUpperCase() //Dans la capitale
str.toLowerCase() //En minuscules
Différents types, y compris des nombres, peuvent être convertis en chaînes avec String.valueOf (). La valeur de retour est un type String.
String.valueOf(int num)
Si un tableau de type char est utilisé comme argument, la chaîne sera une concaténation des tableaux.
char[] c = {'a', 'b', 'c'};
String.valueOf(c) //"abc"Est retourné
Ceci est pratique lorsque vous souhaitez obtenir le nombre de chiffres dans un nombre.
int N = 100000;
String.valueOf(N).length() //Il s'avère qu'il s'agit de 6 chiffres
Construisez comme suit.
StringBuilder sb = new StringBuilder(str)
Peut être converti en type String avec toString.
sb.toString()
append correspond à + de type String. L'argument peut être de type int ou de type char au lieu de type String.
sb.append("Ce que vous voulez combiner")
Si vous souhaitez l'insérer n'importe où, utilisez insert.
sb.insert(int index, "Ce que vous voulez combiner")
Vous pouvez spécifier l'index et supprimer la sous-chaîne. Comme les autres méthodes, elle n'inclut pas endIndex.
sb.delete(int beginIndex, int endIndex)
Avec setCharAt, vous pouvez remplacer n'importe quel caractère d'index par un autre caractère.
sb.setCharAt(int index, char c)
//sb.setCharAt(1, 'z')Si c'est le cas, ça devient azc
La chaîne de caractères inversée est obtenue par reverse.
sb.reverse()
Convertit une sous-chaîne avec l'index spécifié en une chaîne arbitraire.
sb.replace(int start, int end, "Chaîne de remplacement")
sb.length()
sb.charAt(int index)
sb.indexOf("Chaîne de type chaîne")
sb.indexOf("Chaîne de type chaîne", int fromIndex)
sb.lastIndexOf("Chaîne de type chaîne")
sb.lastIndexOf("Chaîne de type chaîne", int fromIndex)
Les opérations de type String et de classe StringBuilder sont résumées. Normalement, vous pouvez utiliser le type String, mais si vous effectuez des opérations plusieurs fois et que leur exécution prend beaucoup de temps, ou si vous souhaitez effectuer des opérations telles que l'inversion, vous devez utiliser la classe StringBuilder.
En outre, dans la programmation de compétition, il faut du temps pour générer une chaîne de caractères plusieurs fois, donc dans ce cas, il est préférable de l'ajouter à StringBuilder et de tout afficher à la fin. Si vous avez besoin d'un saut de ligne, vous pouvez ajouter "\ n".
Oracle Help Center Description de la classe String Description de la classe StringBuilder