Récemment, j'ai implémenté un processus pour jouer avec des chaînes de caractères dans mon travail.
Sample.java
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Split {
public static void main(String[] args) {
//Thème: divisez une chaîne de 10 longueurs en 5 blocs de 2 caractères chacun
String sampleString = "0123456789";
List<String> splitedStringList = new ArrayList<String>();
Matcher m = Pattern.compile("[\\s\\S]{1,2}").matcher(sampleString);
while (m.find()) {
splitedStringList.add(m.group());
}
for (String element : splitedStringList) {
System.out.println(element); //01 23 45 76 89 s'affiche avec un saut de ligne
}
}
}
Si vous utilisez pleinement ce que c'est une expression régulière, vous pouvez écrire un processus comme ↑ qui "semble faire quelque chose de cool à première vue".
Ou plutôt, j'ai fait ce genre d'implémentation au début.
En effet, split () est basé sur le délimiteur spécifié dans l'argument, vous ne pouvez donc pas spécifier "X caractères à la fois".
Cependant, du leader sur place qui est passé derrière
"Dois-je utiliser substring ()?"
Après tout, c'est suffisant car il ne sépare les chaînes de caractères qu'avec une règle super simple. Cependant, l'idée de l'utiliser lors de la mise en œuvre n'a pas du tout été évoquée. C'est gênant.
Même avec une seule implémentation, il y a beaucoup de choses à considérer, comme les performances de traitement et la lisibilité du code ...
Non limité à Java, c'était un cas sur lequel je devrais personnellement réfléchir.
Recommended Posts