2016-05-15 4 views
0

zum Beispiel bekommen kann ich eine Datei enthalten: „Der Hintergrund dieser Kurzgeschichte in Deutschland“ und eine andere Zeile enthalten: „Hintergrund dieser Kurzgeschichte in Frankreich“, wie ich Wort in der gleichen Position in großen String auf Datei in Java

und jeder Zeile das Wort‚Deutschland‘ist ein anderes Wort geändert, aber in der gleichen Position

wie kann ich drucken Sie das Wort in dieser Position in einer anderen Datei

+1

Sie können Dateien [Zeile für Zeile] lesen (http://stackoverflow.com/questions/5868369/how-to-read-a-large-text-file-line-by-line-using-java). Sie müssen es nicht als eine einzelne große Zeichenfolge behandeln. – zapl

+0

Meinst du eine Zeichenfolge, wenn Sie eine Datei sagen? – AkashBhave

+0

Sie können 'indexOf()' – Raju

Antwort

0

Zuerst sollten Sie lese den Dateiinhalt und speichere ihn in einem String. Sie können dann die Zeichenfolge wie folgt analysieren:

Führen Sie diesen Code für jede Datei mit den verschiedenen Werten aus. Das geänderte Wort ist value in diesem Beispiel.

0

Wenn Ihr ‚Der Hintergrund dieser Kurzgeschichte in‘ Teil nicht in jeder Zeile ändert, dann können Sie Muster verwenden passende das neue Wort zu erhalten.

import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class Test { 

    public static void main(String args[]) { 

     // String to be scanned to find the pattern. 
     String pattern = "The background to this short story in (.*)"; 

     // Create a Pattern object 
     Pattern r = Pattern.compile(pattern); 

     // Now create matcher object. 


     String file = "fileLocation"; 
     try (BufferedReader br = new BufferedReader(new FileReader(file))) { 
      String line; 
      while ((line = br.readLine()) != null) { 
       Matcher m = r.matcher(line); 
       if (m.find()) { 
        System.out.println("Found value: " + m.group(0)); 

        System.out.println("Found value: " + m.group(1)); // GIVES YOU THE NEW WORD 

       } else { 
        System.out.println("NO MATCH"); 
       } 
      } 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

} 

Sie das neue Wort in m.group (1) erhalten.