String.split()
demande une expression régulière dans son paramètre, et dans les expressions régulières, .
correspondra à n'importe quel caractère. Pour le faire fonctionner, vous devez ajouter un \
, comme ceci:
System.out.println(file.getName().split("\\.").length);
Vous avez besoin d'un anti-slash pour échapper à la dot, de sorte que le regex sait que vous voulez un point réel. Vous avez besoin de l'autre barre oblique inverse pour échapper à la première barre oblique inverse, c'est-à-dire pour dire à Java que vous voulez avoir un backslash réel dans votre chaîne. Lire le javadoc pour String.split et regular expressions pour plus d'informations
En général, vous pouvez utiliser Pattern.quote (str) pour obtenir une expression régulière qui correspond 'str' littéralement. – Ramon
Bonne réponse, merci! – etheros
Est-ce que quelqu'un a dit ** Regex **: D http://xkcd.com/208/ –