基于Java中已经存在的文件夹名称生成文件夹名称
我正在寻找一种基于现有文件夹名生成文件夹名的方法基于Java中已经存在的文件夹名称生成文件夹名称,java,file,directory,Java,File,Directory,我正在寻找一种基于现有文件夹名生成文件夹名的方法 List<String> foos = new ArrayList<String>(); foos.add( "myfolder" ); foos.add( "myfolder_1" ); foos.add( "myfolder_3" ); foos.add(generateFolderName(foos, "m
List<String> foos = new ArrayList<String>();
foos.add( "myfolder" );
foos.add( "myfolder_1" );
foos.add( "myfolder_3" );
foos.add(generateFolderName(foos, "myfolder")); // should add myfolder_4
foos.add(generateFolderName(foos, "foobar")); // foobar
foos.add(generateFolderName(foos, "foobar")); // foobar_1
listfoos=newarraylist();
foos.add(“我的文件夹”);
foos.add(“myfolder_1”);
foos.add(“myfolder_3”);
添加(generateFolderName(foos,“myfolder”);//应该添加myfolder_4
添加(generateFolderName(foos,“foobar”);//福巴
添加(generateFolderName(foos,“foobar”);//foobar_1
有人对如何实现generateFolderName()有什么建议吗?谢谢您的回复。到目前为止,我的答案是这样的。但我不确定你是否监督过什么
public static String generateFolderName( List<String> p_folder, String p_name )
{
if( !p_folder.contains(p_name) )
{
return p_name;
}
else
{
ArrayList<String> matches = new ArrayList<String>();
for(String item : p_folder)
{
if( Pattern.matches(p_name + "_[0-9]{1,5}", item))
matches.add(item);
}
int highestIndex = 1;
for(String item : matches)
{
String strNum = item.substring(
item.lastIndexOf("_") + 1,
item.length()
);
int num = new Integer( strNum ) + 1;
if (num > highestIndex)
highestIndex = num;
}
return p_name + "_" + highestIndex;
}
}
public静态字符串generateFolderName(列表p_文件夹,字符串p_名称)
{
如果(!p_folder.contains(p_name))
{
返回p_名称;
}
其他的
{
ArrayList matches=新的ArrayList();
用于(字符串项:p_文件夹)
{
if(Pattern.matches(p_name+“[0-9]{1,5}”,项))
匹配。添加(项);
}
int highestIndex=1;
for(字符串项:匹配项)
{
字符串strNum=item.substring(
项目.lastIndexOf(“”)+1,
项目.长度()
);
int num=新整数(strNum)+1;
如果(数值>最高索引)
highestIndex=num;
}
返回p_name+“_”+highestIndex;
}
}
请描述您想要实现的确切文件夹命名模式。问题是模糊的。文件夹必须与此正则表达式模式匹配:[a-zA-z0-9-#:z\\S]{1200}