[java] Résumé de la gestion des chaînes de caractères

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.

Type de chaîne

Caractéristiques de type chaîne

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

StringBuffer et StringBuilder

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.

Opération de base de type chaîne

Effectuez des opérations de base sur la chaîne de caractères de type String suivante S.

String str = "a,b,c";

Obtenir la longueur

Obtenez la longueur de la chaîne. La valeur de retour est de type int.

str.length()

Obtenez le Nième personnage

La valeur de retour est de type char.

str.charAt(int index)

Combiner des chaînes

Vous pouvez combiner des chaînes avec +.

str += "Chaîne de type chaîne"

Diviser la 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")

Découpez une chaîne de caractères

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)

Comparaison de chaînes

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")

Comparaison de l'ordre du dictionnaire

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")

Chercher

Jugement d'authenticité

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")
Obtenir l'index

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)

Remplacement de la chaîne de caractères

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")

Conversion de cas

La valeur de retour est un type String.

str.toUpperCase() //Dans la capitale
str.toLowerCase() //En minuscules

Conversion en chaîne

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

Résumé de l'utilisation de StringBuilder

Conversion de String en StringBuilder

Construisez comme suit.

StringBuilder sb = new StringBuilder(str)

Conversion de StringBuilder en String

Peut être converti en type String avec toString.

sb.toString()

Concaténation de chaînes

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")

Supprimer la sous-chaîne

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)

Changer le caractère de n'importe quel index

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

Inversion de chaîne de caractères

La chaîne de caractères inversée est obtenue par reverse.

sb.reverse()

Remplacement de la chaîne de caractères

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")

Même opération que le type String

Obtenir la longueur
sb.length()
Obtenez le Nième personnage
sb.charAt(int index)
Obtenir l'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)

Résumé

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".

référence

Oracle Help Center Description de la classe String Description de la classe StringBuilder

Recommended Posts

[java] Résumé de la gestion des chaînes de caractères
[java] Résumé de la gestion des caractères
[Java] [Maven3] Résumé de l'utilisation de Maven3
[Java] Résumé de la façon d'omettre les expressions lambda
Résumé de l'API de communication Java (1) Comment utiliser Socket
Résumé de l'API de communication Java (3) Comment utiliser SocketChannel
Résumé de l'API de communication Java (2) Comment utiliser HttpUrlConnection
Résumé de la mise en œuvre des arguments par défaut en Java
Comment concaténer des chaînes avec Java
Différences dans la gestion des chaînes entre Java et Perl
[Introduction à Java] Gestion des chaînes de caractères (classe String, classe StringBuilder)
Comment créer un résumé de calendrier Java
Résumé de l'écriture des arguments d'annotation
Résumé de la sélection des éléments dans Selenium
Résumé de la création de balises JSF personnalisées
[Java] Comment utiliser une sous-chaîne pour découper une partie d'une chaîne de caractères
Résumé du support Java 2018
Comment concaténer des chaînes
[Java] Comment obtenir facilement la plus longue chaîne de caractères d'ArrayList à l'aide de stream
[Java] Comment obtenir l'URL de la source de transition
Comment écrire Scala du point de vue de Java
[Java] Types de commentaires et comment les rédiger
[Java Silver] Résumé des points liés aux expressions lambda
[Java] Convertit les chaînes de caractères en majuscules / minuscules (AOJ⑨ --swap majuscules / minuscules)
[Java] Comment obtenir la valeur maximale de HashMap
Résumé des connaissances requises pour réussir Java SE8 Silver
À partir d'avril 2018 Comment installer Java 8 sur Mac
[Java] Comment découper une chaîne de caractères caractère par caractère
[Java] Comment effacer un caractère spécifique d'une chaîne de caractères
À propos de la conversion pleine largeur ⇔ demi-largeur des chaînes de caractères en Java
Comment exécuter l'exemple WebCamCapture de NyARToolkit pour Java
[Java] Gestion des chaînes de caractères (classe String et classe StringBuilder)
Comment abaisser la version java
[Java] Comment utiliser Map
Comment désinstaller Java 8 (Mac)
Java - Comment créer JTable
Comment gérer les images téléchargées
[Java11] Résumé du flux -Avantages du flux-
Principes de base de l'utilisation des caractères (Java)
Comment utiliser java Facultatif
Comment réduire les images Java
Comment rédiger un commentaire java
[Java] Résumé des expressions régulières
Comment utiliser la classe Java
[Java] Résumé des opérateurs (opérateur)
[Java] Comment utiliser removeAll ()
[Java] Comment afficher les Wingdings
Comment utiliser Java Map
Comment définir des constantes Java
Résumé des bases du langage Java
Résumé de la classe Java Math
Comment utiliser les variables Java
Comment gérer les instances
Comment convertir la base Java