Frage

Ich bin verwirrt. Ich versuche, eine Schleife obwohl 2 Dateien auf dem ersten Token in jeder Zeile der ersten Datei suchen und es in den dritten Token jeder Zeile der zweiten Datei zu vergleichen. Hier ist die logische Struktur in Form einer verschachtelten while-Schleife:

BufferedReader reader1 = new BufferedReader(new InputStreamReader(new FileInputStream(fromFile1)));

BufferedReader reader2 = new BufferedReader(new InputStreamReader(new FileInputStream(fromFile2),"EUC-JP"));

String line1, line2 = null;
String temp1, temp2 = null;

while ((line1=reader1.readLine()) != null)
{
    StringTokenizer st1 = new StringTokenizer(line1);
    temp1 = "U"+st1.nextToken();
    while((line2=reader2.readLine()) != null)
    {
        StringTokenizer st2 = new StringTokenizer(line2);
        temp2 = st2.nextToken();
        temp2 = st2.nextToken();
        temp2 = st2.nextToken();
        if(temp2.equals(temp1));
        {
            System.out.println(temp1+" "+temp2);
        }
    }
}

Doch alles, was ich in der Ausgabe sehe, ist das erste Token aus der ersten Zeile der ersten Datei und die dritten Token von jeder Zeile der zweiten Datei 6000 (die Länge der Datei 2) wiederholt mal unabhängig davon, ob sie " gleich“ist oder nicht. Hat dies mit ihren unterschiedlichen Kodierungen zu tun? Ich kann sehen, dass eine Wirkung auf den Gleichheitstest zu haben, aber warum ist nicht die Schleife verhält richtig?

Cheers, Brandon

War es hilfreich?

Lösung

es ist das; hinter dem if

if(temp2.equals(temp1));

Aber es wäre wahrscheinlich sowieso nicht funktionieren wie erwartet, da Sie Datei 2 in der äußeren Schleife wieder öffnen müssen, sonst wird es nur richtig für die erste Zeile der Datei 1

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top