我有一个文件类型数组,它被逐个转换为字符串类型现在我想创建一个所有转换字符串的数组。不知道该怎么做并且坚持到这里。
FTPFile[] files = client.list();
for (FTPFile file : files) {
System.out.println(file.getName());
//How to make an array of file.getName
答案 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++;
}