0

文字列を入力として受け取り、javaファイルで文字列を検索し、行とそれが発生する位置を出力するプログラムを作成したいと思います。

私の主な問題は、結果の「ストレージ」を作成することです。リストを使用できないので、2次元配列[][]でこれを解決したいと思います。しかし、すべての行に新しい第1レベルの要素を追加し、文字列が出現するすべての位置に第2レベルの要素を追加することはできません。

配列を作成するには、すでにいくつの文字列があるかを知る必要がありますね。

私の主なアイデア:を介して行を読み取り、部分文字列がその行にあるかどうかinput.readLine()を確認する必要があります。indexOf()そうである場合は、位置を保存し、-1が返されるまで検索を続けます。input.readLine戻るまで続けますnull。この概念が正しければ、「ストレージ」の問題を解決する必要があります。

4

1 に答える 1

0

マルチマップを使用できます。

    HashMap<String, List<Integer>> map = new HashMap<String, List<Integer>>();
    ArrayList<Integer> lineAndPosition = new ArrayList<Integer>();
    lineAndPosition.add(1); //line number
    lineAndPosition.add(23); //position number 
    map.put("key", lineAndPosition);

したがって、各キーは、行番号と発生位置を格納する配列にマップされます。

于 2012-11-24T13:18:59.993 に答える