Java - Comment fractionner une chaîne

Java - Comment diviser une chaîne

Pour diviser une chaîne, utiliseString.split(regex). Passez en revue les exemples suivants:

    String phone = "012-3456789";
    String[] output = phone.split("-");
    System.out.println(output[0]);
    System.out.println(output[1]);

Sortie

    012
    3456789

Note
Cesplit (regex) prend une expression régulière comme argument, n'oubliez pas d'échapper auxregex special characters, comme point / point.

1. Fractionner une période / un point

Le point / point est un caractère spécial dans regex, vous devez l'échapper soit avec un double backlash\., soit en utilisant la méthodePattern.quote.

TestSplit.java

package com.example.test

import java.util.regex.Pattern;

public class TestSplit {

    public static void main(String[] args) {

        String test = "abc.def.123";
        String[] output = test.split("\\.");

        //alternative
        //String[] output = test.split(Pattern.quote("."));

        System.out.println(output[0]);
        System.out.println(output[1]);
        System.out.println(output[2]);

    }

}

Sortie

abc
def
123

Quelques vérifications courantes avant la séparation.

TestSplit.java

package com.example.test

import java.util.regex.Pattern;

public class TestSplit {

    public static void main(String[] args) {

        String test = "abc.def.123";
        if(test.contains(".")){
            String[] output = test.split("\\.");
            if(output.length!=3){
                throw new IllegalArgumentException(test + " - invalid format!");
            }else{
                System.out.println(output[0]);
                System.out.println(output[1]);
                System.out.println(output[2]);
            }
        }else{
            throw new IllegalArgumentException(test + " - invalid format!");
        }

    }

}

2. Exemple de StringTokenizer

Autrefois, les développeurs Java aimaient utiliser la classeStringTokenizer pour diviser une chaîne. En effet, la classeStringTokenizer est disponible depuis JDK 1.0 et la classeString.split() est disponible depuis JDK 1.4

TestSplit.java

package com.example.test

import java.util.StringTokenizer;

public class TestSplit {

    public static void main(String[] args) {

        String test = "abc.def.123";

        StringTokenizer token = new StringTokenizer(test, ".");

        while (token.hasMoreTokens()) {
            System.out.println(token.nextToken());
        }

    }

}

Sortie

abc
def
123

Note
CeStringTokenizer est une classe héritée, conservée pour des raisons de compatibilité, l'utilisation est déconseillée! Veuillez utiliserstring.split().