(不包括任何外部库。)
在Java中,最有效的方法是什么来删除文件名的扩展名,而不假设任何文件名吗?
以下是一些示例和预期结果:
- folder > folder
- hello.txt > hello
- read.me > read
- hello.bkp.txt > hello.bkp
- weird..name > weird.
- .hidden > .hidden
(或者最后一个应该只是hidden?)
编辑: 原问题假设输入是一个文件名(而不是文件路径)。由于一些答案谈论了文件路径,因此这样的函数也应该能够处理类似于:
- rare.folder/hello > rare.folder/hello
Sylvain M的回答非常好地处理了这种特殊情况。
os.path.splitext
函数总是表现出我想要的方式,因此可以参考它来获取一组经过深思熟虑的用例。 - Michael Scheper