Réflexion sur la manipulation de chaînes Java

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

・ Si cela peut être réalisé par un simple traitement, suivez-le.

・ Augmentez le nombre de tiroirs dans votre tête et permettez de sortir librement.

Non limité à Java, c'était un cas sur lequel je devrais personnellement réfléchir.

Recommended Posts

Réflexion sur la manipulation de chaînes Java
Chaîne Java
[Java] Remplissage de la chaîne de caractères
Remarques sur les opérateurs utilisant Java ~ Type chaîne ~
Traitement des chaînes Java
Chaîne divisée (Java)
Fonction Excel de manipulation de chaînes
Installez Java sur Mac
[Java] Comparaison des chaînes de caractères et && et ||
Exécutez PostgreSQL sur Java
Remplacement multiple de chaîne Java
Manipulation de base de la date Java
[Note] Java: recherche de chaînes de caractères
[Note] Java: enquête sur les chaînes de caractères
À propos de la classe Java String
Manipulation de la date dans Java 8
Gestion des versions Java sur macOS
Installez OpenJDK7 (JAVA) sur ubuntu 14.04
Rétrograder Java sur openSUSE Linux
Sous-chaîne de classe Java inflexible String
En passant Java Gold SE 8
Oracle Java 8 sur Docker Ubuntu
Installez Java sur WSL Ubuntu 18.04
[Java] À propos de String et StringBuilder
Exécutez l'applet java sur ubuntu
Mettez Oracle Java 8 dans CircleCI 2
Changer la version java sur CentOS
Installez java 1.8.0 sur Amazon linux2
[Java] Comparaison de vitesse de combinaison de chaînes
Exécutez l'application Java EE sur CICS
OSX 10.15 (Catalina) Utilisation de Java avec β
Considération sur le cadre de persistance Java 2017 (résumé) -1
Diverses méthodes de la classe Java String
Considération sur le cadre de persistance Java 2017 (6) Ebean
Mémo personnel: métaprogrammation avec réflexion Java
Obtenez Java Silver dans votre temps de trajet!
Considération sur le framework de persistance Java 2017 (5) Iciql
Considérations sur le cadre de persistance Java 2017 (7) EclipseLink
Installation de Java Open JDK 8 sur CentOS 7
Java sur AWS Lambda est-il lent?
Hello World avec AWS Lambda + Java
Code de création de chaîne arbitraire par Java
Remarques sur le contrôle du signal en Java
Considération sur le framework de persistance Java 2017 (1)
Considérations sur le cadre de persistance Java 2017 (8) Hibernate5
Rattrapage Java9 (basé sur Oracle JVM)
Exécutez le script shell de tomcat sur java8
Activer les SDK Java 8 et Java 11 sur Ubuntu
Impossible d'installer Java sur Ubuntu 13.04
Remarques sur le traitement des threads Android (java)
Considérations sur le cadre de persistance Java 2017 (2) Doma2
Etudier Java 8 (String Joiner et Join)
[Java] Comparaison correcte du type String
Remarques sur le chemin et le package Java
Installez Java 9 sur Windows 10 et CentOS 7
Développer gRPC sur la série Windows + Java 7 + Maven 2
Installer l'environnement de développement Java sur Mac
[Java] Afficher la chaîne de bits stockée dans la variable de type d'octet sur la console