OVH Cloud OVH Cloud

split

3 réponses
Avatar
caralho27
Re Bonjour;
Comment faire fonctionner un split pour "["?
il me dit
c:\dev\j2sdk1.4.1_01\bin>java TestConf2
exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed char
acter class near index 0


at java.util.regex.Pattern.error(Pattern.java:1489)
at java.util.regex.Pattern.clazz(Pattern.java:2002)
at java.util.regex.Pattern.sequence(Pattern.java:1546)
at java.util.regex.Pattern.expr(Pattern.java:1506)
at java.util.regex.Pattern.compile(Pattern.java:1274)
at java.util.regex.Pattern.<init>(Pattern.java:1030)
at java.util.regex.Pattern.compile(Pattern.java:777)
at java.lang.String.split(String.java:1795)
at java.lang.String.split(String.java:1838)
at TestConf2.main(TestConf2.java:48)

3 réponses

Avatar
Fleury Renaud
(Tony) écrivait
news::

Re Bonjour;
Comment faire fonctionner un split pour "["?
il me dit
c:devj2sdk1.4.1_01bin>java TestConf2
exception in thread "main" java.util.regex.PatternSyntaxException:
Unclosed char acter class near index 0


Simple Utilise plutôt StringTokenizer, c'est plus sympathique que la
méthode split de String!

Renaud

Avatar
Laurent Courtin

Re Bonjour;
Comment faire fonctionner un split pour "["?
il me dit
c:devj2sdk1.4.1_01bin>java TestConf2
exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed char
acter class near index 0


at java.util.regex.Pattern.error(Pattern.java:1489)
at java.util.regex.Pattern.clazz(Pattern.java:2002)
at java.util.regex.Pattern.sequence(Pattern.java:1546)
at java.util.regex.Pattern.expr(Pattern.java:1506)
at java.util.regex.Pattern.compile(Pattern.java:1274)
at java.util.regex.Pattern.<init>(Pattern.java:1030)
at java.util.regex.Pattern.compile(Pattern.java:777)
at java.lang.String.split(String.java:1795)
at java.lang.String.split(String.java:1838)
at TestConf2.main(TestConf2.java:48)


Utilise le caractère comme échappement :

public class Test {

public static void main(String[] args) {
String[] split = "[hdshdh[hdhdhd[hdhdh".split ("[");
for (int i = 0; i < split.length; i++) {
System.out.println (split[i]);
}
}
}


Cordialement,

--
Laurent Courtin

Avatar
Bruno
dans l'article , Tony à
a écrit le 19/11/2003 12:41 :

Re Bonjour;
Comment faire fonctionner un split pour "["?
il me dit
c:devj2sdk1.4.1_01bin>java TestConf2
exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed
char
acter class near index 0


at java.util.regex.Pattern.error(Pattern.java:1489)
at java.util.regex.Pattern.clazz(Pattern.java:2002)
at java.util.regex.Pattern.sequence(Pattern.java:1546)
at java.util.regex.Pattern.expr(Pattern.java:1506)
at java.util.regex.Pattern.compile(Pattern.java:1274)
at java.util.regex.Pattern.<init>(Pattern.java:1030)
at java.util.regex.Pattern.compile(Pattern.java:777)
at java.lang.String.split(String.java:1795)
at java.lang.String.split(String.java:1838)
at TestConf2.main(TestConf2.java:48)


"[" est un meta-caractere :(

Il est possible de déspécialiser un métacaractère (lui enlever sa
signification particulière à en le faisant précédé d'un caractère backslash.
Ainsi pour utiliser le caractère backslash, il faut le doubler :)

--
Bruno Causse
http://perso.wanadoo.fr/othello