String.split()
fragt nach einem regulären Ausdruck in seinem Parameter und in regulären Ausdrücken, .
passt auf jedes Zeichen. Damit es funktioniert, müssen Sie ein \
etwa so:
System.out.println(file.getName().split("\\.").length);
Sie brauchen einen Backslash, um den Punkt zu entschlüsseln, damit der Regex weiß, dass Sie einen echten Punkt wollen. Den anderen Backslash brauchen Sie, um den ersten Backslash zu escapen, d.h. um Java mitzuteilen, dass Sie einen echten Backslash in Ihrer Zeichenkette haben wollen.
Lesen Sie die Javadoc für String.split y reguläre Ausdrücke für weitere Informationen.