Remove filename extension in Java

Viewed 29117

(Without including any external libraries.)

What's the most efficient way to remove the extension of a filename in Java, without assuming anything of the filename?

Some examples and expected results:

  • folder > folder
  • hello.txt > hello
  • read.me > read
  • hello.bkp.txt > hello.bkp
  • weird..name > weird.
  • .hidden > .hidden

(or should the last one be just hidden?)

Edit: The original question assumed that the input is a filename (not a file path). Since some answers are talking about file paths, such functions should also work in cases like:

  • rare.folder/hello > rare.folder/hello

This particular case is handled very well by Sylvain M's answer.

10 Answers
Related