0

10 個の文字列 (各文字列は 1 行) を含むファイルがあり、LCS を実行して各比較の LCS と LCS の長さを取得する必要があります (たとえば、文字列 1 と文字列 2、文字列 1 と文字列 3、文字列 1 と文字列)。 4 など、各文字列を通過するまで続き、次に文字列 2 にインクリメントし、すべての文字列を通過するまでこのプロセスを繰り返します。

簡単にするために各文字列を ArrayList に正常に追加しましたが、これらの文字列を互いに比較しようとして問題が発生しました。通過するまでインクリメントしないネストされた for ループを使用する必要があると考えています。リスト全体、次にインクリメントします。

どんな助けでも大歓迎です。そして、これは私がこれまでに持っているコードです。

     public static void main(String[] args) {

        List<String> Collection = new ArrayList<>();
        String FirstLine = null;
        int i;

        File Temp1 = new File("CollectionSeqs/listSeqs-consensustest-errorhigh-l10.nsol_win.txt");

        try{
            InputStream fis = new FileInputStream(Temp1);
            BufferedReader br = new BufferedReader(new InputStreamReader(fis));

            for (String line = br.readLine(); line != null; line = br.readLine()) {
                Collection.add(line);
                System.out.println(line);
             }
            br.close();
        }
        catch(Exception e){
            System.err.println("Error: Target File Cannot Be Read");
        }
4

1 に答える 1

0

ネストされた for ループを使用するアプローチは正しいです。これを行う方法は次のとおりです。

for(int i=0;i<Collection.size();++i)
{
  String s1=Collection.get(i);
  for(int j=i+1;j<Collection.size();++j)
  {
    String s2=Collection.get(j);
    run the LCS for string s1 and s2
  }
}
于 2016-04-12T07:24:31.000 に答える