2016-04-30 5 views
-1

hi Ich muss Duplikate aus einer Datei entfernen und drucken Sie diese Datei in umgekehrter Reihenfolge zum Beispiel "Ram ist Ram ist der Lehrer" dann sollte Ausgabe "Lehrer der ist Ram ".Entfernen von Duplikaten aus einer Datei und Drucken in umgekehrter Anweisung nicht Wörter mit Java

public class BufferedReaderExample { 

     public static void main(String[] args) { 

      BufferedReader br = null; 

      try { 

       String sCurrentLine; 

       br = new BufferedReader(new FileReader("C:\\testing.txt")); 

       while ((sCurrentLine = br.readLine()) != null) { 
        System.out.println(sCurrentLine); 
       } 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } finally { 
       try { 
        if (br != null)br.close(); 
       } catch (IOException ex) { 
        ex.printStackTrace(); 
       } 
      } 

     } 
    } 
+0

derzeit Ihr Code tut nichts, um jede Zeile erwarten Druck. Auch die Ausgabe ist unklar: Im Falle von Duplikaten, was willst du? Behalte den ersten Wert? Den anderen behalten? – Tunaki

+0

ja Ich will das erste Vorkommen gelöscht werden und das letzte Vorkommen zum Beispiel gedruckt "Dies ist ein dies mit dieser Variable" es sollte wie Variable drucken dies mit einem Ich habe nichts außer Lesen getan, da ich nicht in der Lage bin zu denken Logik – user4188607

Antwort

0
public void readAndPrintInReverseOrder() throws IOException { 
    String path = "test.txt"; 

    BufferedReader br = null; 

    try { 
     br = new BufferedReader(new FileReader(path)); 
     Stack<String> lines = new Stack<String>(); 
     String line = br.readLine(); 
     while(line != null) { 
      lines.push(line); 
      line = br.readLine(); 
     } 

     while(! lines.empty()) { 
      System.out.println(lines.pop()); 
     } 

    } finally { 
     if(br != null) { 
      try { 
       br.close(); 
      } catch(IOException e) { 
      } 
     } 
    } 
} 
+0

der obige Code wird in der Weise wie wenn ich zwei Zeilen in meiner Datei dann drucken es die zweite Zeile anstelle von ersten und ersten anstelle von zweiten das ist es, aber ich denke, meine Frage ist klar in letzten Kommentar – user4188607

+0

bitte Kerl bitte helfe mir dabei, denn das ist sehr kritisch – user4188607

+0

Wer das beantworten kann ist wirklich schwer für mich! – user4188607

0
package com.himanshu.factorypattern; 

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.Iterator; 
import java.util.List; 
import java.util.Map; 
import java.util.Set; 
import java.util.TreeMap; 

public class DuplicateString { 

    public static void main(String[] args) throws IOException { 
     // TODO Auto-generated method stub 
     String sCurrentLine; 
     BufferedReader br = null; 
     try{ 
      br = new BufferedReader(new FileReader("D:/him.txt")); 
      while((sCurrentLine=br.readLine())!=null) 
      { int c=0; 
      //System.out.println(sCurrentLine); 
       String[] p = sCurrentLine.split(" "); 
       Map<Integer,String> l = new TreeMap<Integer,String>(); 
       for(int i=0;i<p.length;i++){ 
        if(l.containsValue(p[i])){ 

        } 
        else{ 
        l.put(c++,p[i]); 
        //System.out.println(l); 
        } 
       } 

       Set ss = l.keySet(); 
       Iterator it = ss.iterator(); 

       while(it.hasNext()){ 
        //Map.Entry m = (Map.Entry)it.next(); 
        int k= (int)it.next(); 
        System.out.print(l.get(k)+" "); 

       //System.out.println(sCurrentLine); 

      } 
       System.out.println(); 
      } 
     } 
     catch(Exception e){ 

     } 
     finally{ 
      br.close(); 

     } 


     /*String s = "I am the logic the current the current"; 
     String[] p = s.split(" "); 
     Map<Integer,String> l = new TreeMap<Integer,String>(); 
     for(int i=0;i<p.length;i++){ 
      l.put(p[i].hashCode(),p[i]); 
     } 
     Set ss = l.keySet(); 
     Iterator it = ss.iterator(); 

     while(it.hasNext()){ 
      //Map.Entry m = (Map.Entry)it.next(); 
      int k= (int)it.next(); 
      System.out.print(l.get(k)+" "); 

     }*/ 
    } 

} 
+0

Hallo Ich bin fertig mit dem, was ich will, aber jetzt ist das Problem, ich habe einige Änderungen in meiner Datei gemacht und gespeichert, aber mein Programm liest nicht die Datei Darf ich wissen, warum? – user4188607

Verwandte Themen