【问题标题】:Generate folder names based on folder names that already exist in Java根据 Java 中已经存在的文件夹名称生成文件夹名称
【发布时间】:2015-09-18 16:07:35
【问题描述】:

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

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

【问题讨论】:

  • 请描述您想要实现的确切文件夹命名模式。问题很模糊。
  • 文件夹必须匹配此正则表达式模式:[a-zA-z0-9-#:_\\S]{1,200}

标签: java file directory


【解决方案1】:

感谢您的回复。到目前为止,我的回答是这样的。但我不确定是否监督了某些事情。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-06
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 2016-09-11
    相关资源
    最近更新 更多