59 votes

Java : fractionner la chaîne lorsqu'une lettre majuscule est trouvée

Je pense que c'est une question facile, mais je ne suis pas en mesure de trouver une solution simple (disons, moins de 10 lignes de code :)

J'ai un String tel que "thisIsMyString" et je dois le convertir en String[] {"this", "Is", "My", "String"} .

Veuillez noter que la première lettre n'est pas en majuscule.

25voto

Bozho Points 273663
String[] camelCaseWords = s.split("(?=[A-Z])");

19voto

Mulder Points 151

Pour tous ceux qui se demandent comment est le motif lorsque la chaîne à diviser peut commencer par un caractère majuscule :

 String s = "ThisIsMyString";
String[] r = s.split("(?<=.)(?=\\p{Lu})");
System.out.println(Arrays.toString(r));

donne : [Ceci, Est, Mon, Chaîne]

8voto

RoToRa Points 20081

Étant donné que String::split utilise une expression régulière, vous pouvez utiliser une analyse anticipée :

 String[] x = "thisIsMyString".split("(?=[A-Z])");

1voto

Spigolo Vivo Points 21

Essaye ça;

 static Pattern p = Pattern.compile("(?=\\p{Lu})");
String[] s1 = p.split("thisIsMyFirstString");
String[] s2 = p.split("thisIsMySecondString");

...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X