我想知道是否有“Groovy”方法从文件名中删除文件扩展名。
当前的解决方案依赖于apache commons io package:
import org.apache.commons.io.FilenameUtils
String filename = '/tmp/hello-world.txt'
def fileWithoutExt = FilenameUtils.removeExtension(filename)
答案 0 :(得分:21)
您可以这样做:
filename[0..<filename.lastIndexOf('.')]
删除字符串中最后一个.
之后的所有内容。
或稍微漂亮一点:
filename.take(filename.lastIndexOf('.'))
答案 1 :(得分:2)
在这种情况下可能有点矫枉过正,但我倾向于将很多公共类视为mixins
String.metaClass.mixin org.apache.commons.io.StringUtils
String.metaClass.mixin org.apache.commons.io.FilenameUtils
etc
然后允许你
String filename = '/tmp/hello-world.txt'
def fileWithoutExt = filename.removeExtension()
我混合哪些取决于脚本的要求,但我倾向于使用这种模式。它使我能够轻松使用我习惯使用的方法,而无需使用所有静态类或导入引用。