Comportement inattendu lorsque vous essayez d'utiliser des chaînes de caractères.split(“\\?”)
J'ai donc une chaîne de caractères qui est comme ça:
"Some text here?Some number here"
et j'ai besoin de split, je suis en utilisant String.split("\\?")
, mais si j'ai une chaîne comme celle-ci:
"This is a string with, comma?1234567"
Je l'ai coupée en deux dans la virgule (,
). Et si j'ai cette Chaîne:
"That´s a problem here?123456"
Il se divise aussi sur ´
, Alors comment puis-je résoudre ce problème?
pouvez-vous mettre le texte d'exemple dans un bloc de code, de sorte que nous pouvons distinguer entre la question et l'exemple?
Avez-vous besoin de découper une chaîne de plusieurs caractères? Ainsi, la Chaîne "test1?test2,test3" "test1", "test2", "test3"?
quelle est la version de java que vous utilisez? Je n'ai pas ce problème.....
(Je doute qu'il y est une version java qui va montrer votre problème....)
Avez-vous besoin de découper une chaîne de plusieurs caractères? Ainsi, la Chaîne "test1?test2,test3" "test1", "test2", "test3"?
quelle est la version de java que vous utilisez? Je n'ai pas ce problème.....
(Je doute qu'il y est une version java qui va montrer votre problème....)
OriginalL'auteur fredcrs | 2010-11-11
Vous devez vous connecter pour publier un commentaire.
Je ne vois pas ce comportement: (ne serais-je espérer)
rendements:
bonjour
1000
L'introduction d'une virgule "," ou une apostrophe "'" ne fait aucune différence pour le split:
rendements:
il,llo
1000
rendements:
il'llo
1000
L'versé fonctionne aussi très bien si vous avez les espaces dans la chaîne d'entrée. Je ne peux que suggérer que votre regex n'est pas ce que vous pensez que c'est!
OriginalL'auteur Richard H
Ressemble à un typique regex problème.
Je suis à l'aide de cette par exemple de diviser
dans une paire avec le nom et le code distinct:
\\? n'est pas pour le point d'interrogation, mais les regex pour plus de symboles
Cela peut vous aider: download.oracle.com/javase/7/docs/api/java/util/regex/...
Le point d'interrogation est échappé (note de l' \\ avant l' ?). Une double barre oblique est utilisée pour échapper au lieu d'une seule barre oblique inverse parce que c'est un littéral de chaîne dans le code source Java.
Voir mon autre réponse, qui est un simpeler solution pour ce problème (également testé pour vous)
OriginalL'auteur michel.iamit
c'est la solution de: (EDIT: c'est encore plus simple)
je l'ai testé:
[MODIFIER après la remarque ci-dessous], j'ai ajouté un test, Maintenant je ne vois pas quel est le problème, cela fonctionne aussi bien (et même plus aussi simple):
désolé, vous avez raison, je n'ai même pas essayer ça:
OriginalL'auteur michel.iamit