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 de chaînes en obtenant une valeur numérique à partir d'une variable de 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 ?

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 convertir une chaîne séparée par des virgules en un tableau dans postgresql

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

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

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

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

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

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

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?

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

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

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

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

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

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

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

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

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

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

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

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

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

Convertir un tableau d'Ints 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?

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

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

TOP liste

  1. 1

    comment afficher un bouton au-dessus d'un autre élément ?

  2. 2

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  3. 3

    Je continue à obtenir l'objet 'WSGIRequest' n'a pas d'attribut 'Get' sur django

  4. 4

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  5. 5

    Conversion double en BigDecimal en Java

  6. 6

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

  7. 7

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

  8. 8

    Passer la taille d'un tableau 2D à une fonction ?

  9. 9

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

  10. 10

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

  11. 11

    CSS: before ne fonctionne pas sur certains éléments,: after fonctionne très bien

  12. 12

    Comment créer un bot à compte à rebours dans Discord en utilisant Python

  13. 13

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  14. 14

    Exporter la table de l'arborescence vers CSV avec mise en forme

  15. 15

    Comment activer le message Pylint "too-many-locals" dans VS Code?

  16. 16

    Créer un système Buzzer à l'aide de python

  17. 17

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  18. 18

    Empêcher l'allocation de mémoire dans la génération de combinaison récursive

  19. 19

    Déplacement des moindres carrés d'ajustement pour les déplacements de points ayant des problèmes

  20. 20

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  21. 21

    Microsoft.WebApplication.targets

chaudétiquette

Archive