想要在java中从文件类型数组创建一个String类型数组

时间:2014-08-29 16:38:14

标签: java

我有一个文件类型数组,它被逐个转换为字符串类型现在我想创建一个所有转换字符串的数组。不知道该怎么做并且坚持到这里。

 FTPFile[] files = client.list();
    for (FTPFile file : files) {
          System.out.println(file.getName());
    //How to make an array of file.getName

5 个答案:

答案 0 :(得分:1)

首先,这不是一个很好的应用,它增强了for循环,它掩盖了迭代器变量。其次,我不确定您正在使用哪种 FTPFile实施,但假设您使用Apache Commons FTPFile,我会提供此代码段。

String[] strings = new String[files.length];
for(int i = 0; i < files.length; i++){
    strings[i] = files[i].getName(); // or whatever method call your FTPFile has
}

答案 1 :(得分:0)

只需声明一个Array String来保存您的文件名,然后根据索引更改for循环,这样就可以为fileNames数组的每个元素赋值< / p>

FTPFile[] files = client.list();
String[] fileNames = new String[files.length];
for (int i = 0; i < files.length; i++) {
  System.out.println(files[i].getName());
  //Just add the file name to the array of Strings
  fileNames[i] = files[i].getName();
}

答案 2 :(得分:0)

使用Java 8你可以这样做:

String[] strings = Arrays.stream(files)
        .map(FTPFile::getName)
        .toArray(String[]::new);

一点解释:

  • Arrays.stream(files)返回Stream有关文件元素的Array
  • .map(FTPFile::getName)是从类型FTPFile到类型String的映射(getName的返回类型和您想要的目标类型)。它由方法引用(双冒号::)作为lambda表达式的简写形式完成:element -> element.getName()
  • .toArray(String[]::new);创建一个新的String []并将流中的所有元素存储在其中,再次使用方法引用(长格式为:size -> new String[size]

有关Streams的更多信息,请参阅JavaDoc - Stream (Java Platform SE8)

答案 3 :(得分:0)

怎么样

      String[] ss = Arrays.stream(files).
              map(f -> f.getName()).
              toArray(String[]::new);

答案 4 :(得分:-1)

如下所示

FTPFile[] files = client.list();
int size = files.length;
int i =0;
String a []=new String[size];

    for (FTPFile file : files) {
          System.out.println(file.getName());

           a[i] = file.getName();
           i++;
 }