2016-12-01 16 views
0

誰かが私に同様の質問をすることができますが認められると思います。Java:テキストファイルを読み込みます。選択した単語をフィルタリングします。 ArrayListへの入力

だから

ノード[ID]

エッジの形で記述されたノードとの接続を有し、このテキストファイル(基本的にグラフ)を有します[送信先]

テキストファイルにデータを入力するためのパターンがあります。 [角括弧内]のすべてを含むテキストファイルです。 「

のでheirarhcyがentire_text_inside_a [ ノード[ID 1]ノード[ID 2]エッジ[元1先2]

を行く今私は中にidと店舗の値を取得したいです別々にリストし、別々にエッジを立てる。 私はJava I/Oに新しいものがありますが、入力ファイルにはテキストファイルの一般的な考え方がありますが、FILTER部分についてはどうでしょうか。

ありがとうございました。

テキストファイルの小片

node [ 
    id 152 
    label "Milan" 
    Country "Italy" 
    Longitude 9.18951 
    Internal 1 
    Latitude 45.46427 
    type "Data Centre and MAN" 
    ] 
    edge [ 
    source 0 
    target 1 
    LinkLabel "Operational network managed end-to-end" 
    ] 

私は答えを得る場合、私はそれを投稿します。

+0

テキストファイルをフィルタリングするには、テキストファイルを読み込んで文字列に保存し、文字列を解析して必要なデータを取得する必要があります。 – aleb2000

+0

文字列を解析するには、正規表現(正規表現)、[正規表現についてのOracleのレッスン](https://docs.oracle.com/javase/tutorial/essential/regex/)を使用できます。 – aleb2000

+0

@Abhinavあなたが "id"を望むノードから、エッジからあなたはどんな部分をしたいですか? (ソース、ターゲット、LinkLabel)。また、定義されたような複数のノードとエッジがありますか? – SachinSarawgi

答えて

0

バッファーリーダーを使用して、行ごとに「[」文字をチェックすることができます。 "["文字を見つけると、先頭のテキストに "ノード"または "エッジ"が含まれているかどうかがチェックされます。対応するArrayListを、テキストファイルの行を降り続け、行の "id"または "source"のいずれかを見つけるメソッドに渡します。 "id"または "source"の行を見つけたら、その行を解析して、必要な情報を抽出してArrayListに追加します。その行に "]"が含まれていれば元のコードに戻ります。空行を受け取るまで、ファイルの行をループし続けます。

+0

BufferReaderを使って各行をチェックすることができます。驚くばかり! 「[」と「]」の間に値を取得する方法がわかりません。 –

+0

はい、BufferReaderのreadLine()メソッドを使用できます。このメソッドは、すべてのテキストを1行に含むStringを返します。 readLine()を使うたびに、ファイルの次の行に移動します。文字列には文字列を検索できるcontains()というメソッドがあります。この場合、「[」または「]」文字のみを検索することができます。 –

関連する問題