【发布时间】:2017-07-05 17:34:43
【问题描述】:
我下面的代码有效并且逻辑有效。但是,我想打印出两个文件夹中不同的实际文件的名称,它们保存在fileNames1 和fileNames2 的数组中。我一直在寻找没有解决方案的答案。在离开 Java 一段时间后,我才刚刚回到 Java 的最佳状态。任何帮助,将不胜感激。
import java.io.File;
import java.util.ArrayList;
public class nameCompare {
public static void main(String[] args) {
String path1 = "C:/Users/hoflerj/Desktop/test";
String path2 = "C:/Users/hoflerj/Desktop/test2";
File folder1 = new File(path1);
File folder2 = new File(path2);
File[] listOfFiles1 = folder1.listFiles();
File[] listOfFiles2 = folder2.listFiles();
ArrayList<String> fileNames1 = new ArrayList<String>();
ArrayList<String> fileNames2 = new ArrayList<String>();
for (int i = 0; i < listOfFiles1.length; i++)
{
if (listOfFiles1[i].isFile())
{
fileNames1.add(listOfFiles1[i].getName());//wow
}
}
for (int i = 0; i < listOfFiles2.length; i++)
{
if (listOfFiles2[i].isFile())
{
fileNames2.add(listOfFiles2[i].getName());//seriously wow
}
}
for ( int i = 0; i < 1; i++ )
{
if (fileNames1.equals(fileNames2) )
{
System.out.println("Files names are the same");
}
else if (fileNames1 != fileNames2 )
{
System.out.println("Files names are not equal");
}
}
}
}
【问题讨论】:
-
您在输出中究竟要寻找什么?
-
fileNames1 != fileNames2不是如何比较字符串。在您进行的第一个测试前面放一个!,例如!fileNames1.equals(fileNames2)进行与该测试相反的测试。