2015-09-18 81 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; 
    }   
} 
相關問題