(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.
解决方案
I'm going to have a stab at this that uses the two-arg version of lastIndexOf in order to remove some special-case ch