我正在寻找一种基于现有文件夹名称生成文件夹名称的方法,例如。
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
有没有人建议如何实现generateFolderName()?
答案 0 :(得分:0)
感谢您的回复。到目前为止我的答案是这样的。但我不确定是否已经监督过。
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;
}
}