有一个包含以下文件的文件夹
myoutput.pdf
hello.pdf.pdf
byebye.txt
hey.txt.txt
如何仅删除具有重复扩展名的文件的扩展名?在示例中只有 pdf 和 txt,但在实际示例中可以是任何类型的扩展名。
我到目前为止:
String dir = "C:/Users/test";
File[] files = new File(dir).listFiles();
for (File file : files) {
if (file.isFile()) {
System.out.println(file.getName());
}
}
但我不知道现在如何检测到具有“重复扩展名”的扩展名并将其重命名为“单个扩展名”
我想要的输出是:
myoutput.pdf
hello.pdf
byebye.txt
hey.txt
提前致谢。
最佳答案
您可以使用
file.getName().replaceAll("(\\.\\w+)\\1+$", "$1")
请参阅regex demo
图案详细信息:
(\\.\\w+)
- 第 1 组捕获一个点和 1 个或多个单词字符(\\w+
可能会替换为[^ .]+
匹配除点之外的 1 个或多个字符)\\1+
- 第 1 组中捕获的一个或多个相同值$
- 字符串结尾。
替换模式只是对组 1 ($1
) 的反向引用,仅出现 1 次扩展名。
关于java - 删除 Java 上重复的扩展文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40485375/