2016-10-20 13 views
1

下記のフォーマットの代わりに、すでに修正されたテキストを出力したいと思います。私は、検索エンジンのために、「もしかして」を作成するために必要なときに私はこの問題に出くわしたJava言語ツールでの提案の自動適用

JLanguageTool langTool = new JLanguageTool(new BritishEnglish()); 
List<RuleMatch> matches = langTool.check("A sentence with a error in the Hitchhiker's Guide tot he Galaxy"); 
for (RuleMatch match : matches) { 
    System.out.println("Potential error at characters " + 
     match.getFromPos() + "-" + match.getToPos() + ": " + 
     match.getMessage()); 
    System.out.println("Suggested correction(s): " + 
     match.getSuggestedReplacements()); 
} 

ので、出力は以下のようにする必要があります「というエラーと文......」

答えて

2

私が開発している。次のコードは、トリックを行うように見えた。試合を反復することにより

public String didYouMean(String query) { 

    JLanguageTool langTool = new JLanguageTool(new BritishEnglish()); 
    List<RuleMatch> matches = null; 
    try { 
     matches = langTool.check(query); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    String didYouMean = ""; 
    int lastPos = 0; 

    for (RuleMatch match : matches) { 
     didYouMean += query.substring(lastPos, match.getFromPos()); 
     didYouMean += match.getSuggestedReplacements().get(0); 
     lastPos = match.getToPos();  
    } 

    if (lastPos < query.length()) { 
     didYouMean += query.substring(lastPos, query.length()); 
    } 

    return didYouMean; 
} 

を、私は元のクエリ文字列を追加することができました(つまり、エラーが発生した文字列)新しいStringに、しかしでエラーを交換します最初にLanguageToolから置換を提案しました。

希望すると便利です。

関連する問題