Sous-chaîne de classe Java inflexible String

Écrit en ** JDK 1.8 **.

Substring de la classe String

La classe String a une méthode substring qui coupe une partie de la chaîne. Il découpera deux types en fonction du nombre d'arguments.

Quand il y a un argument

** Définition **

    substring(int beginIndex)

Il coupe les caractères après beginIndex. Notez que l'index de la chaîne compte à partir de «0».

** Exemple d'utilisation **

    String str = ("Doraemon");
    String cutStr = str.substring(2);
    System.out.println("Après la coupe:" + cutStr);

résultat

Après la coupe: Emon

La chaîne de caractères après le caractère «e» dans l'index spécifié «2» est coupée.

Quand il y a deux arguments

** Définition **

    substring(int beginIndex, int endIndex)

Il coupe les caractères après beginIndex, y compris les caractères de ʻendIndex-1`. ** Exemple d'utilisation **

    String str = ("Doraemon");
    String cutStr = str.substring(2, 4);
    System.out.println("Après la coupe:" + cutStr);

résultat

Après la coupe: Emo

La chaîne de caractères «Emo» du «beginIndex = 2» spécifié au caractère «E» à «endIndex --1 = 3» est coupée.

C'est subtil

S'il y a deux arguments et que la longueur de la chaîne est inférieure à ʻendIndex -1`, une exception sera levée.

Cas d'utilisation

Sortie de la chaîne de caractères à afficher à l'écran. Puisqu'il y a une limite selon laquelle seuls 4 caractères peuvent être affichés à l'écran, je souhaite limiter la chaîne de caractères de sortie à 4 caractères. Si la chaîne de caractères est inférieure à 4 caractères, je souhaite la sortir telle quelle.

code


    String str1 = ("Doraemon");
    String str2 = ("Nobita");
    String str3 = ("Mari Sune");

    List<String> sourceStrList = Arrays.asList(str1, str2, str3);
    List<String> outStrList = new ArrayList<>();

    for (String sourceStr : sourceStrList) {
        outStrList.add(sourceStr.substring(0, 4));
    }

    System.out.println("Après la coupe:" + outStrList);

résultat

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4

Oui, une exception s'est produite. Ici, «Nobita» et «Suneo» ont des index jusqu'à «2», ce qui est inférieur à «endIndex -1 = 3», ce qui est une exception. C'est gênant car il est nécessaire de vérifier la longueur des caractères à l'avance pour le résoudre.

Résolu en utilisant substring dans StringUtils

Si vous utilisez la sous-chaîne fournie dans ʻorg.apache.commons.lang3.StringUtils`, vous pourrez résoudre ce problème.

    substring(String str, int start, int end)

L'index de la chaîne de caractères à découper dans «str» va de «start» à «end -1».

code

    String str1 = ("Doraemon");
    String str2 = ("Nobita");
    String str3 = ("Mari Sune");

    List<String> sourceStrList = Arrays.asList(str1, str2, str3);
    List<String> outStrList = new ArrayList<>();

    for (String sourceStr : sourceStrList) {
        outStrList.add(StringUtils.substring(sourceStr, 0, 4));
    }

    System.out.println("Après avoir coupé:" + outStrList);

résultat

Après avoir coupé[Doraemo,Nobita,Mari Sune]

Même si la chaîne de caractères est inférieure à ʻend --1 = 3`, elle sera sortie telle quelle.

référence

java.lang String substring org.apache.commons.lang3 Class StringUtils substring

Recommended Posts

Sous-chaîne de classe Java inflexible String
À propos de la classe Java String
Sous-chaîne de mémo Java (classe standard)
Sous-chaîne Java
Diverses méthodes de la classe Java String
Méthodes de classe Java
[Java] Héritage de classe
classe Scanner java
[Java] Remplissage de la chaîne de caractères
[Java] Aide-mémoire de classe de type de données / chaîne de caractères
java (classe abstraite)
[Java] Classe imbriquée
Classe anonyme Java
Traitement des chaînes Java
À propos de la classe Java
Méthodes de classe de chaîne
[java] Classe abstraite
[Java] Classe d'objets
Chaîne divisée (Java)
Classe locale Java
À propos de la division de classe (Java)
[Java] À propos de la classe Singleton
[Java] Comparaison des chaînes de caractères et && et ||
Remplacement multiple de chaîne Java
Examen de la classe interne Java
Champ de type de classe Java
[Note] Java: recherche de chaînes de caractères
[Note] Java: enquête sur les chaînes de caractères
Programmation Java (méthode de classe)
Programmation Java (structure de classe)
À propos de la classe abstraite de Java
[Java] Gestion des chaînes de caractères (classe String et classe StringBuilder)
Astuces Java - Modificateurs de classe StaticUtility
Réflexion sur la manipulation de chaînes Java
Longueur du mémo Java (classe standard)
[Implémentation] Notes de classe de processus java
À propos des types de chargeur de classe Java
Comment utiliser la classe Java
[Java] Comparateur de la classe Collection
Définition et instanciation de classe Java
[Java] À propos de String et StringBuilder
Mémo d'apprentissage Java (classe abstraite)
Résumé de la classe Java Math
[Java] Qu'est-ce que l'héritage de classe?
Méthode de classe variable de classe Java
[Introduction à Java] Gestion des chaînes de caractères (classe String, classe StringBuilder)
[Notions de base Java] Qu'est-ce que la classe?
[Java] Comparaison de vitesse de combinaison de chaînes
Créer une classe immuable avec JAVA
Pourquoi les variables de classe sont-elles nécessaires? [Java]
Appeler la classe scellée de Kotlin depuis Java
[Java] Syntaxe orientée objet - Méthode / argument de classe
Comment désassembler un fichier de classe Java
Classe Kotlin à envoyer aux développeurs Java
Classe StringBuffer et StringBuilder en Java
Comment décompiler un fichier de classe Java
Code de création de chaîne arbitraire par Java
Diverses méthodes de la classe String
java (utilisez le type de classe pour le champ)