2016-05-15 10 views
0

私はファイルが含まれています: "ドイツのこの短い物語の背景" と別の行には: " 「どのように私はファイル内の大きな文字列の同じ位置に単語を得ることができます

、すべてのワード線 『ドイツ』をフランスのショートストーリーは、別の単語に変更されますが、同じ位置に

は、どのように私は別のファイル

+1

[行単位]ファイルを読むことができます(http://stackoverflow.com/questions/5868369/how-to-read-a-large-text-file-line-byline-using-java)。それを単一の大きな文字列として扱う必要はありません。 – zapl

+0

ファイルを言うときに文字列を意味しますか? – AkashBhave

+0

'indexOf()'を使うことができます – Raju

答えて

0

まずあなたがすべきで、この位置にある単語を印刷することができますファイルの内容を読み込んで文字列に保存します。

String sentence = "The background to this short story in germany"; 
String[] sentenceSplit = sentence.split(" "); 
String value = sentenceSplit[sentenceSplit.length - 1]; 

異なる値を持つ各ファイルに対してこのコードを実行します。この例では、変更された単語はvalueです。一部ご「内のこの短い物語の背景には、」すべての行に変更されていない場合

0

は、あなたは新しい単語を取得するためにをマッチングパターンを使用することができます。

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(); 
     } 
    } 

} 

あなたはm.group(1)に新しい単語を取得します。

関連する問題