groovy有没有一个简单的方法来获得没有扩展名的文件名?

2022-08-31 19:46:07

假设我有这样的东西:

new File("test").eachFile() { file->  
println file.getName()  
}

这将打印目录中每个文件的完整文件名。有没有一种时髦的方法来获取没有任何扩展名的文件名?(或者我又回到了正则表达式的土地上?test


答案 1

我相信最时髦的方式是:

file.name.lastIndexOf('.').with {it != -1 ? file.name[0..<it] : file.name}

或者使用简单的正则表达式:

file.name.replaceFirst(~/\.[^\.]+$/, '')

还有一个apache commons-io java lib用于这种目的,如果你使用maven,你可以很容易地依赖它:

org.apache.commons.io.FilenameUtils.getBaseName(file.name)

答案 2

最干净的方式。

String fileWithoutExt = file.name.take(file.name.lastIndexOf('.'))