1

整数を含む入力ファイルは次のようになります。

     5 2 3 5
     2 4 23 4 5 6 4

では、最初の行を読み、スペースで区切り、これらの数値を Arraylist1 に追加するにはどうすればよいでしょうか。次に、2 行目を読み、スペースで区切り、数値を ArrayList2 に追加します。(したがって、Arraylist1 には [5,2,3,5] などが含まれます)

    FileInputStream fstream = new FileInputStream("file.txt");
    DataInputStream in = new DataInputStream(fstream);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    String data;
    while ((data = br.readLine()) != null)   {
      //How can I do what I described above here?
    }
4

5 に答える 5

4

宿題?

これを使用できます:

String[] tmp = data.split(" ");    //Split space
for(String s: tmp)
   myArrayList.add(s);

または、 Scanner クラスを見てください。

于 2012-04-17T13:44:21.277 に答える
2

を使用することを検討してくださいStringTokenizer

いくつかのヘルプ:文字列トークナイザー

StringTokenizer st = new StringTokenizer(in, "=;"); 
while(st.hasMoreTokens()) { 
String key = st.nextToken(); 
String val = st.nextToken(); 
System.out.println(key + "\t" + val); 
} 
于 2012-04-17T13:45:45.607 に答える
1

HectorLector から提供された回答を試した後、特定の状況では機能しませんでした。だから、ここに私のものがあります:

String[] tmp = data.split("\\s+");    

これは正規表現を使用します

于 2015-07-08T23:34:48.180 に答える
1

から標準配列を取得できますdata.split("\\s+");。これにより、int []が得られます。別の行を別のリストに入れるには、何か特別なものが必要です。

于 2012-04-17T13:43:38.330 に答える
0

あなたが必要とするのは、のようなものですArrayList of ArrayList。Javaの関数を使用してdata.split("\\s+");、String 配列の 1 行ですべての要素を取得し、これらの要素を ArrayList の ArrayList の内側の ArrayList に入れることができます。次の行では、外側の ArrayList の次の要素に移動できます。

于 2012-04-17T14:52:29.263 に答える