2016-08-08 34 views
-2

Ich habe zwei große Textdateien Suche nach etwas, das die beiden Dateien für Zeilen vergleicht, die die gleiche Zeichenfolge enthalten und den Rest löschen. Hoffnung, die Sinn macht.Duplizieren müssen und alle eindeutigen Zeilen löschen

Beispiel:

list1.txt

number1:1010:1020:1030 
number2:1010:1020:1030 
number3:1010:1020:1030 
number4:1010:1020:1040 

Liste 2.txt

number1 
number2 
number3 
number100 

output =

number1:1010:1020:1030 
number2:1010:1020:1030 
number3:1010:1020:1030 

Alles, was dies tun können? Ich würde wirklich Hilfe schätzen, danke.

+0

Sehr vage Frage. Alle Ihre Zeilen sind unabhängig (wegen der 'numberX:' am Anfang jeder Zeile). –

+0

Auch das ist definitiv nicht etwas, was Sie mit einer Regex tun sollten. –

+0

Sorry, auf der Suche nach etwas, das das tun kann. Ein Programm wäre nett. Entschuldigung für die vage Frage, nach etwas suchend, das die zwei Akten für die Linien vergleicht, die die gleiche Zeichenkette enthalten und den ganzen Rest löschen. Hoffnung, die Sinn macht. –

Antwort

0

Ich werde skizzieren, was Sie programmieren sollten.

  1. Zeile List<String> Zeile für Zeile file1.txt lesen.
  2. Dasselbe gilt für file2.txt.
  3. Schleife über die Zeilen von Datei 1, und überprüfen Sie, ob die Zeile .contains() eine der Zeilen, die Sie in Datei 2 gelesen haben. (Durch Verschachteln einer anderen Schleife).
  4. Wenn es etwas von Datei 2 enthält, gehen Sie sofort zur nächsten Zeile der Datei 1 (durch continue -ing die äußere Schleife). Wenn dies nicht der Fall ist, löschen Sie dieses Element aus der Liste (vergessen Sie nicht, die Schleifenvariable zu verringern, da Sie das Element im aktuellen Index gelöscht haben).