如何在Java中获取没有扩展名的文件名?

新手上路,请多包涵

谁能告诉我如何获取没有扩展名的文件名?例子:

 fileNameWithExt = "test.xml";
fileNameWithOutExt = "test";

原文由 Iso 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 769
2 个回答

如果你像我一样,宁愿使用一些库代码,他们可能已经想到了所有特殊情况,例如如果你在路径中而不是在文件名中传递 null 或点会发生什么,你可以使用以下内容:

 import org.apache.commons.io.FilenameUtils;
String fileNameWithOutExt = FilenameUtils.removeExtension(fileNameWithExt);

原文由 Ulf Lindback 发布,翻译遵循 CC BY-SA 3.0 许可协议

最简单的方法是使用正则表达式。

 fileNameWithOutExt = "test.xml".replaceFirst("[.][^.]+$", "");

上面的表达式将删除最后一个点后跟一个或多个字符。这是一个基本的单元测试。

 public void testRegex() {
    assertEquals("test", "test.xml".replaceFirst("[.][^.]+$", ""));
    assertEquals("test.2", "test.2.xml".replaceFirst("[.][^.]+$", ""));
}

原文由 brianegge 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题