java中去除文件名的后缀名_Java程序在最后一个点后去除其扩展名的文件名

该方法removeExtension()用于在最后一个点后去除扩展名的文件名。该方法需要一个参数,即文件名,并且返回不带扩展名的文件名。

演示此的程序如下所示-

示例import java.io.File;

public class Demo {

public static String removeExtension(String fname) {

int pos = fname.lastIndexOf('.');

if(pos > -1)

return fname.substring(0, pos);

else

return fname;

}

public static void main(String[] args) {

System.out.println(removeExtension("c:\\JavaProgram\\demo1.txt"));

}

}

上面程序的输出如下-

输出结果c:\JavaProgram\demo1

现在让我们了解上面的程序。

该方法removeExtension()用于在最后一个点后去除扩展名的文件名。证明这一点的代码片段如下-public static String removeExtension(String fname) {

int pos = fname.lastIndexOf('.');

if(pos > -1)

return fname.substring(0, pos);

else

return fname;

}

该方法将main()打印文件名,而不包含该方法返回的扩展名removeExtension()。证明这一点的代码片段如下-public static void main(String[] args) {

System.out.println(removeExtension("c:\\JavaProgram\\demo1.txt"));

}

Java中,你可以使用`java.io.File`类配合循环结构和字符串操作来实现这种功能。以下是一个简单的示例,它会遍历目标目录,并尝试为每个现有的文件添加后缀`001`,如果文件已经存在,则将数字加一: ```java import java.io.File; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; public class FileNameGenerator { public static void main(String[] args) { String directoryPath = "your_directory_path"; // 替换为你想要处理的实际目录路径 List<File> existingFiles = new ArrayList<>(); File dir = new File(directoryPath); if (dir.exists() && dir.isDirectory()) { File[] filesInDir = dir.listFiles(); if (filesInDir != null) { for (File file : filesInDir) { if (file.isFile()) { String baseName = file.getName(); // 获取文件的基本名称,去掉扩展名 int index = findLastNumber(baseName); // 找到最后一个数字,从后往前查找 String newName = incrementSuffix(baseName, index, "001"); // 加上后缀并递增 while (newName.equals(file.getName())) { // 如果新名字还是存在的,继续递增 newName = incrementSuffix(baseName, index, "002"); } file.renameTo(new File(dir, newName)); // 重命名文件 existingFiles.add(new File(newName)); // 添加到已处理文件列表 } } } else { System.out.println("Directory is not valid or empty."); } } else { System.out.println("Directory does not exist."); } // 提供的两个辅助函数 private static int findLastNumber(String name) { return Integer.parseInt(name.substring(name.lastIndexOf(".") + 1).split("\\D+")[0]); } private static String incrementSuffix(String baseName, int lastDigitIndex, String suffixFormat) { String prefix = baseName.substring(0, lastDigitIndex); int currentSuffix = Integer.parseInt(baseName.substring(lastDigitIndex)); currentSuffix++; return prefix + String.format(suffixFormat, currentSuffix); } } } ``` 这个程序会在控制台打印出已重命名的文件名列表。如果你需要的话,可以根据实际情况调整错误检查和日志记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值