Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于Java中已经存在的文件夹名称生成文件夹名称_Java_File_Directory - Fatal编程技术网

基于Java中已经存在的文件夹名称生成文件夹名称

基于Java中已经存在的文件夹名称生成文件夹名称,java,file,directory,Java,File,Directory,我正在寻找一种基于现有文件夹名生成文件夹名的方法 List<String> foos = new ArrayList<String>(); foos.add( "myfolder" ); foos.add( "myfolder_1" ); foos.add( "myfolder_3" ); foos.add(generateFolderName(foos, "m

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

    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
listfoos=newarraylist();
foos.add(“我的文件夹”);
foos.add(“myfolder_1”);
foos.add(“myfolder_3”);
添加(generateFolderName(foos,“myfolder”);//应该添加myfolder_4
添加(generateFolderName(foos,“foobar”);//福巴
添加(generateFolderName(foos,“foobar”);//foobar_1

有人对如何实现generateFolderName()有什么建议吗?

谢谢您的回复。到目前为止,我的答案是这样的。但我不确定你是否监督过什么

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;
    }        
}
public静态字符串generateFolderName(列表p_文件夹,字符串p_名称)
{
如果(!p_folder.contains(p_name))
{                          
返回p_名称;
}                 
其他的
{
ArrayList matches=新的ArrayList();
用于(字符串项:p_文件夹)
{           
if(Pattern.matches(p_name+“[0-9]{1,5}”,项))
匹配。添加(项);
}            
int highestIndex=1;
for(字符串项:匹配项)
{                                   
字符串strNum=item.substring(
项目.lastIndexOf(“”)+1,
项目.长度()
);    
int num=新整数(strNum)+1;
如果(数值>最高索引)
highestIndex=num;
}
返回p_name+“_”+highestIndex;
}        
}

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