如何在for循环中返回所有值?

时间:2018-04-05 14:38:42

标签: java groovy

我在FileMaker中运行的这个groovy代码但是循环只返回一个值我怎么能返回所有fileslist。     在FileMaker中,println语句不起作用,只返回语句,所以如何返回所有值     如下面的循环显示。

JOIN

此循环只返回FileMaker中唯一的第一个值

        start()
        def start(){
        def store;
        def ftpClient = new FTPClient()
        ftpClient.connect(server)
        // println(ftpClient.replyString)
        ftpClient.login(user,pass)
        ftpClient.enterLocalPassiveMode()
        FTPFile[] fileslist = ftpClient.listFiles("/")

如何返回所有值?

3 个答案:

答案 0 :(得分:1)

将其放入列表并返回。

start()
def start(){
  def store;
  def ftpClient = new FTPClient()
  ftpClient.connect(server)
  // println(ftpClient.replyString)
  ftpClient.login(user,pass)
  ftpClient.enterLocalPassiveMode()
  FTPFile[] fileslist = ftpClient.listFiles("/")

  // This loop just returns the only first value in FileMaker  
  List<String> mylist = new List<String>(); 
  for(int i=0; i<fileslist.length; i++){  
    String file_name = fileslist[i].getName()
    String file_timestamp = fileslist[i].getTimestamp().getTime()
    myList.add('|' + file_name+ '|' + '/' +file_name+'|' + '{' +file_timestamp+ '}');      
  }     
  ftpClient.disconnect()
  return myList;
}

然后,您可以轻松轻松地访问所有值,并且您可以单独访问它们,随意使用它。

答案 1 :(得分:0)

如果要作为长字符串返回,则需要在循环中创建字符串列表,然后在循环之后连接并返回它们。

def allFiles = []; 
for(int i=0; i<fileslist.length; i++){  
  String file_name = fileslist[i].getName()
  String file_timestamp = fileslist[i].getTimestamp().getTime()
  String s = '|' + file_name+ '|' + '/' +file_name+'|' + '{' +file_timestamp+ '}'
  allFiles << s
}     
ftpClient.disconnect()
return allFiles.join('\n');     

答案 2 :(得分:0)

使用lambda表达式。简短而简单。

List<String> allFiles = Arrays.stream(filelist)
    .map(f -> String.format(“| %s | /%s | { %s }”, f.getName(), f.getName(), f.getTimestamp().getTime()))
    .collect(Collectors.toList());
相关问题