以下のコードは動作し、ロジックは機能します。しかし、私はfileNames1
とfileNames2
の配列に保持されている両方のフォルダで同じではない実際のファイルの名前を出力したいと思います。私は解決策なしで答えを探していました。私はちょうどそれをしばらく離してから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");
}
}
}
}
あなたは正確に出力には何を探していますか? – ZeldaZach
'fileNames1!= fileNames2'は文字列を比較する方法ではありません。あなたが作った最初のテストの前に '!'を入れてください。 '!fileNames1.equals(fileNames2)'を実行して、そのテストと反対のテストを行います。 –