0

テキストファイルからハッシュテーブルに番号を割り当てようとしています。最初の番号をキー、2番目の番号を値として、テキストファイルは1行目(123 321)、2行目(456 565)、n.th行(789 875)のようになります。スペースの後の番号を値として割り当てようとしています。

どうやってやってみたらいいのかわからない

Scanner scanner = new Scanner(new File("C:/Users/msi/Documents/number.txt"));
scanner.useDelimiter(" ");

Hashtable<String, String> numbers = new Hashtable<String, String>();

while(scanner.hasNext()) 
{
    numbers.put(scanner.next(),scanner.next());
    System.out.println(numbers);
}
4

1 に答える 1

1

私が理解しているように、Scannerクラスはファイルを行ごとに解析するためのものです。区切り文字をスペース文字""に設定すると、次の改行が区切り文字ではないというエラーが発生します。したがって、次の値が得られます

  • 123
  • 321 \ n456
  • 565 \n..。
  • ... \ n789
  • 875

これを解決する方法は、値を行ごとに読み取った後で値を分割することです。

Scanner scanner = new Scanner(new File("C:/Users/msi/Documents/number.txt"));

Hashtable<String, String> numbers = new Hashtable<String, String>();

while(scanner.hasNext()) 
{
    String[] values = scanner.next().split(" ");
    numbers.put(values[0], values[1]);
    System.out.println(numbers);
}
于 2012-12-16T20:35:25.933 に答える