indexOf和lastIndexOf返回的都是查找字符的下标位置。
insert在参数指定的位置(其参数值即是下标位置的值)插入,原来在此位置的字符后移。所以在.的位置插入,则可以把后缀插入,.在后缀后。
需要注意文件名没有.的情况,如果是没有.则直接在文件名后添加后缀
import java.io.File;
public class FileNameBatcher {
/**
* @param file 具有通用的文件名称的文件对象
* @param suffix 需要在文件名后添加的后缀
* */
public static File buildNewFile(File file, String suffix) {
return buildNewFile(file.getAbsolutePath(),suffix);
}
/**
* @param file 具有通用的文件名称的字符串对象
* @param suffix 需要在文件名后添加的后缀
* */
public static File buildNewFile(String file, String suffix) {
StringBuilder sb=new StringBuilder().append(file);
int index=sb.lastIndexOf(".");
if(-1==index){
return new File(sb.append(suffix).toString());
}else{
return new File(sb.insert(sb.lastIndexOf("."), suffix).toString());
}
}
//for test
public static void main(String[] args) {
File file=new File("G:\\Codes\\Language\\JAVA\\Project\\Study_Prime\\Day01\\hello_world.java");
File newFile=null;
String suffix=null;
for(int i=0;i<10;++i){
suffix=new String("["+i+"]");
newFile=buildNewFile(file,suffix);
System.out.println(newFile.getAbsolutePath());
}
}
}