根据Java

时间:2015-09-18 16:07:36

标签: java file directory

我正在寻找一种基于现有文件夹名称生成文件夹名称的方法,例如。

    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()?

1 个答案:

答案 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;
    }        
}