2016-11-23 2 views
-3

ich den folgenden Inhalt in eine Textdatei Sample.txteinfache Linie ersetzen nicht in Java arbeiten

This is line1 
This is line2 

und hier habe ich diese neue Linie ersetzt werden soll mit und genannt habe, meine ich die Ausgabe sollte wie sein

This is line1 and This is line2 

und mein Code ist wie folgt.

BufferedReader br = null;

try { 

    String sCurrentLine; 

    br = new BufferedReader(new FileReader("C:\\Users\\home\\Desktop\\Test\\Sample.txt")); 
    int i = 0; 
    while ((sCurrentLine = br.readLine()) != null) { 

     String sCurrentLine1 = sCurrentLine.replaceAll("\\n+", "0NL0"); 
     System.out.println("Line No." + i + " " + sCurrentLine1); 
     i++; 
    } 

Wenn ich das Drucken bin, erhalte ich die Ausgabe als

Line No.0 This is line1 
Line No.1 This is line2 

lassen Sie es mich wissen, wie kann ich diese neue Linie ersetzen.

Dank

+1

Per Definition 'readline()' liest _single_ Linien und nicht die Endung Newline-Zeichen enthalten. –

+0

ist Ihr Problem über ersetzen funktioniert nicht (und damit Sie nicht sehen 0NL0 in Ihrem Ergebnis), oder Sie wollen einfach die Ausgabe alle in 1 Zeile sein? Für letzteres benutze 'print' anstelle von' println' –

Antwort

1

Sie müssen keine replaceAll Die BufferedReader::readLine() Methode entfernt das \n Zeichen aus der zurückgegebenen Zeichenfolge in sCurrentLine. Sie müssen also nur die zurückgegebenen Zeilen anhängen.

Beispiel:

try { 

String sCurrentLine; 
StringBuilder sb = new StringBuilder();// Declare a string builder object. 
br = new BufferedReader(new FileReader("C:\\Users\\home\\Desktop\\Test\\Sample.txt")); 
int i = 0; 
while ((sCurrentLine = br.readLine()) != null) { 
    if(i>0) { 
     sb.append(" and "); 
    } 
    sb.append(sCurrentLine); 
    System.out.println("Line No." + i + " " + sCurrentLine); 
    i++; 
} 
System.out.println("Appended output " + sb.toString()); 
-1

Try this,

String str = ""; 
while ((sCurrentLine = br.readLine()) != null) { 

    String sCurrentLine1 = sCurrentLine.replaceAll("\\n+", "0NL0"); 
    str = str + sCurrentLine1 + " and "; 
} 
System.out.println(str.substring(0,(str.length()-5))); 

Hoffe, dass es Ihnen hilft.

+0

Hallo Freund, das funktioniert gut, aber ich bekomme Null als erstes Ergebnis und dann das eigentliche Ergebnis gedruckt. 'nullDies ist line1 und This is line2' – user3872094

+0

thnx, ich habe das bearbeitet – PSabuwala