Comment diviser une chaîne séparée par des virgules en un tableau de chaînes vides

Changwang Zhang:

Je souhaite diviser ",,,"en un tableau de 4 en ""utilisant leString.split()

Voici mon code:

String str = ",,,";     
String[] tokens = str.split(",");

Cependant, les jetons de résultat étaient un tableau vide: [], plutôt qu'un tableau de 4 "" (["","","",""])comme je le voulais.

J'ai testé pour changer strun peu le:

String str = ",,,1";        
String[] tokens = str.split(",");

Cette fois, les jetons de résultat étaient ["","","","1"]. C'est proche de ce que je veux, mais je ne veux vraiment pas ajouter ce "1" avant de faire le split.

Le problème est fondamentalement, le String.split()retournera un tableau vide s'il ne contient que des éléments vides "".

Pouvez-vous aider à résoudre le problème?

SudoRahul:

Vous devez utiliser la String#split(regex, limit)méthode surchargée qui prend le paramètre limit.

String[] tokens = str.split(",", -1);

De la documentation (c'est moi qui souligne):

Le paramètre limit contrôle le nombre de fois que le motif est appliqué et affecte donc la longueur du tableau résultant. Si la limite n est supérieure à zéro, le motif sera appliqué au plus n - 1 fois, la longueur du tableau ne sera pas supérieure à n et la dernière entrée du tableau contiendra toutes les entrées au-delà du dernier délimiteur correspondant. Si n n'est pas positif, le motif sera appliqué autant de fois que possible et le tableau peut avoir n'importe quelle longueur. Si n est zéro, le motif sera appliqué autant de fois que possible, le tableau peut avoir n'importe quelle longueur et les chaînes vides de fin seront rejetées.


Explication: Lorsque vous ne fournissez pas l'argument limit ou n'indiquez "zéro" comme limite, les split()zones vides de fin sont ignorées. Lorsque vous fournissez un argument de limite positive, il limite le nombre de champs à cette limite particulière. Mais lorsque vous fournissez une limite négative, la split()méthode autorise n'importe quel nombre de champs et ne supprime pas non plus les champs vides de fin. Pour être plus clair, jetez un œil au code source de celui Pattern#split(regex, limit)qui a cet extrait à la fin (des commentaires ont été ajoutés par moi et n'étaient pas présents dans le code source réel).

if (limit == 0) // When zero or no arg is given
    while (resultSize > 0 && matchList.get(resultSize-1).equals("")) // if trailing entries are blank
        resultSize--; // remove them out

Remarque: Si vous ne fournissez aucun argument limit, la split()méthode sans argument limit appelle la split()méthode surchargée comme celle-ci .

public String[] split(String regex) {
    return split(regex, 0);
}

Et notez également que, String#split(regex, limit)appelle en interne le Pattern#split(regex, limit).

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Comment convertir un tableau en chaîne séparée par des virgules en javascript

Comment diviser une chaîne séparée par des virgules et traiter en boucle à l'aide de JavaScript

Comment convertir une chaîne séparée par des virgules en un tableau?

Comment diviser une chaîne séparée par des virgules tout en ignorant les virgules d'échappement?

Diviser une chaîne de valeurs doubles séparées par des virgules en un double tableau en Java8

Comment diviser une chaîne avec des valeurs séparées par des virgules du tableau en 2 champs de texte?

Comment puis-je convertir une chaîne séparée par des virgules en un tableau?

Comment puis-je diviser une chaîne délimitée par des virgules en un tableau en PHP?

Convertir un tableau de chaînes en chaîne séparée par des virgules avec une concaténation supplémentaire

Tableau des chaînes en une chaîne séparée par des virgules

Convertir un tableau d'Ints en une chaîne séparée par des virgules

Comment convertir une chaîne de stockage local séparée par des virgules en tableau numérique en javascript

Regex pour diviser une chaîne de noms de classe CSS séparés par des virgules en tableau

Comment imprimer un tableau dans une chaîne séparée par des virgules en html angulaire

Comment diviser une chaîne séparée par des virgules et des points-virgules en un objet JSON

Comment convertir en toute sécurité une chaîne séparée par des virgules en un tableau de nombres

Comment puis-je convertir un tableau en une chaîne séparée par des virgules?

Comment convertir un tableau d'objets en chaîne séparée par des virgules?

Comment convertir un tableau JSON MySQL en une chaîne séparée par des virgules

Comment convertir un champ de chaîne séparé par des virgules en tableau dans mongodb

Diviser une chaîne séparée par des virgules en un nombre défini de pièces dans R

Comment convertir une chaîne séparée par des virgules en un tableau dans postgresql

comment convertir un tableau imbriqué de tableaux en une chaîne séparée par des virgules

Comment trier un tableau avec des chaînes séparées par des virgules en PHP?

Comment convertir un tableau de chaînes en obtenant une valeur numérique à partir d'une variable de chaîne séparée par des virgules?

Comment créer un tableau à partir d'une chaîne séparée par des virgules, le trier de bas en haut, puis le rejoindre dans une chaîne séparée par des virgules?

diviser un élément de tableau par une chaîne délimitée par des virgules en un tableau ?

PHP : Comment faire un tableau par une chaîne séparée par des virgules ?

comment convertir une chaîne séparée par des virgules en chaînes individuelles (python)

TOP liste

  1. 1

    Comment exécuter un fichier python avec des droits d'administrateur dans pycharm

  2. 2

    obtenir le nombre de marqueur affiché sur la carte

  3. 3

    comment obtenir un objet de requête dans les tests unitaires de django?

  4. 4

    Microsoft.WebApplication.targets

  5. 5

    Comment ajouter un texte dans un texte Python/Tkinter

  6. 6

    comment convertir une chaîne en un tuple dateutil jour de la semaine sans utiliser eval

  7. 7

    mongo kafka connect source

  8. 8

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  9. 9

    Dans les modèles Hugo, comment vérifier la longueur du tableau de fichiers JSON?

  10. 10

    Référencement des assemblys de structure .net 4.7 dans la solution .net core 2

  11. 11

    Comment obtenir tous les champs d'un objet (y compris sa superclasse), à l'aide de l'API Mirrors de Dart?

  12. 12

    Exécuter la requête externe pour chaque date obtenue à partir de la requête interne

  13. 13

    Recherche de dicton Jinja2 à l'aide d'une clé variable

  14. 14

    Laravel 8: Attempt to read property "id" on null

  15. 15

    définir une propriété pour chaque nœud dans neo4j

  16. 16

    Vérifier la longueur du nombre à partir du message, puis utiliser la valeur dans l'instruction

  17. 17

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  18. 18

    Aide de variable de débogage pprint jinja2

  19. 19

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  20. 20

    Impression de la longueur du chemin le plus court dans le labyrinthe

  21. 21

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

chaudétiquette

Archive