0

key=value 形式でフォーマットされた情報を含むテキスト ファイルがあります。キーを検索して値を返すにはどうすればよいですか。

たとえば、ファイルに次のものが含まれているとします。

KeyOne=ValueOne
KeyTwo=ValueTwo

KeyOne を受け取り、ValueOne を返すメソッドが必要です。

4

4 に答える 4

1

わかりました、私は気分が良いです:)、テストされていません:

//given that 'input' got the contents of the file

Map<String,String> m = new HashMap<String,String>();

//this can be done more efficient probably but anyway
//normalize all types of line breaks to '\n'
input = input.replaceAll("\r\n","\n");
input = input.replaceAll("\r","\n");


//populate map
String[] lines = input.split("\n");
for(int i=0 ; i< lines.length; i++){
  String[] nv = lines[i].split("=");
  m.put(nv[0],nv[1]);
}

//get value given key: 
String key = "somekey";
String someValue = m.get(key);
System.out.println(someValue);
于 2012-05-25T00:07:06.157 に答える
1
Scanner s = new Scanner("Filename");
Map<String, String> m = new HashMap<String, String>();
while(s.hasNext()){
    String line[] = s.nextLine().split("=");
    m.put(line[0], line[1]);
}

値を取得するには:

m.get(ValueOne);
于 2012-05-25T00:09:04.343 に答える
1

必要なのは名前と値のペアを読み取ることだけであり、それが構成の性質である場合は、Java でプロパティ ファイルを使用することを検討できます。

これをチェックできます http://www.mkyong.com/java/java-properties-file-examples/

于 2012-05-25T03:36:35.593 に答える
-1

たくさんの方法。あなたは出来る

を。ファイルを 1 行ずつ読み取り、入力を分割してからマップに入力します

b. ファイル全体に正規表現検索を適用する

c. 全文検索のインデックスを作成できます

それはすべて、ユースケースによって異なります。コンテキストを理解せずにアプローチを推奨することは困難です。

于 2012-05-25T00:09:14.203 に答える