2015-09-18 82 views
-1
文件夹名称

我正在寻找一种方式来生成文件夹名称基于已存在的文件夹名称,即基于文件夹的名称已经在Java中存在

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

一个文件夹必须匹配这个正则表达式模式:[a-zA-z0-9 - #:_ \\ S] {1,200} – user3601578

回答

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; 
    }   
} 
相关问题