Java: le découpage d'une chaîne par des espaces quand il y a un nombre variable d'espaces entre les mots?
J'ai le texte suivant:
String string = "1-50 of 500+";
String[] stringArray = string.split(" ");
L'impression de tous les éléments de ce tableau me donne les éléments suivants:
Element 1: 1-50
Element 2: of 500+
Comment puis-je obtenir pour partager des éléments par l'exigence qu'il y ait au moins un espace entre les mots?
En d'autres termes, je veux que mes éléments:
Element 1: 1-50
Element 2: of
Element 3: 500+
Vous devez vous connecter pour publier un commentaire.
Utilisation
\\s+
à split sur les cases, même si elles sont plus.Exemple complet: http://ideone.com/CFVr6N
EDIT:
Si vous aussi vous souhaitez diviser sur onglets, modifier la regex pour
\\s+|\\t+
et il détecte à la fois les espaces et les tabulations en tant que bien.\s
classe. Il n'est pas nécessaire d'ajouter un cas spécial pour elle.Vous pouvez diviser à l'aide de regex
Avec goyave
Splitter
:De sortie:
Splitter.onPattern("\\s+")
ou l'autre des solutions posté ici, merci beaucoup!!!Utiliser cette versé à la Chaîne.
Votre Programme est correcte, mais si vous mettez deux espace après
1-50
. Si Sa vous donnant cette sortie. Supprimer un espace et vous avez terminé. Pas besoin de changer le code. Mais si il y a un espace à deux, alors vous devriez utiliserstring.split("\\s+")
au lieu de
Pour résoudre le problème d'espace, après la séparation, vous pouvez utiliser
.trim()
à supprimer l'espace blanc.Quelque chose comme cela devrait fonctionner.