2010-09-28 4 views

Répondre

11

L'argument de la méthode "split" doit être une expression régulière, et le '?' caractère a une signification spéciale dans les expressions régulières, donc vous devez y échapper. Cela est fait en ajoutant une barre oblique inverse avant dans l'expression rationnelle. Cependant, étant donné que l'expression rationnelle est fournie par l'intermédiaire d'une chaîne Java, il nécessite deux barres obliques à la place de manière à obtenir un caractère de barre oblique inverse réelle dans le regexp:

str.split("\\?")[0]; 
+1

+1 pour expliquer * pourquoi * vous devez échapper '?', Plutôt que de simplement donner du code. – FrustratedWithFormsDesigner

2
str.split("\\?")[0] 
+1

(Explication: l'argument 'String.split' est – bobince

+1

... parce que '?' est un caractère spécial dans les expressions régulières, il doit être échappé avec \ et \ doit être échappé avec une expression régulière et non un texte simple. \ en Java. – splash

+0

@Downvoter: Vous voulez expliquer pourquoi? – LukeH

Questions connexes