2017-09-26 12 views
0

私のプログラムは外部ファイルから読み込み、各行のデータを配列リストに入れています。外部ファイルの行には5つの異なる値があり、値はコンマで区切られています。私はちょうど私のコードの他の部分で使用する配列リストの最初の値を取得する方法を把握することはできません。 ファイルの最初の値は名前であり、それがchangeNameに対して作成したエントリと一致させるために取得しようとしているものです。コンマの前の配列リストの最初の値を取得

System.out.println("Enter the name of the player you would like to change the amount for"); 
    String changeName = FileUtility.getInput().nextLine(); 

    Scanner s = new Scanner(new File(FILE_NAME)); 
    String str = ""; 
    ArrayList<String> list = new ArrayList<String>(); 

    while (s.hasNext()) { 
     list.add(s.next()); 
    } 
+1

私はことを示唆しています[String documentation](https ://docs.oracle.com/javase/7/docs/api/java/lang/String.html)。このページを参照すると、役立つ機能を見つけることができます。 –

+0

あなたは 'String'クラスの' split'メソッドを知っていますか? –

+0

@ Code-Apprentice私はstr.splitを使用して、string []をArrayListに変換できないというエラーを受け取りました。このコードリストを使用しました= str.split( "、"); –

答えて

0

[OK]を、私は右のあなたを得た場合、これはあなたがやりたいことになります。

 Scanner s = new Scanner(new File("test.txt")); 
     String str = ""; 
     List<List<String>> list = new ArrayList<List<String>>(); 

     while (s.hasNext()) { 
      list.add(Arrays.asList(s.nextLine().split(","))); 
     } 

     // then you can acces random element from the list this way 
     System.out.println(list.get(0).get(1)); 

     // or print all values in the list 
     for (List<String> elem : list) { 
      System.out.println(Arrays.toString(elem.toArray())); 
     } 

は出力:

asdf 
[asdf, asdf, asdf, asdf, asdf] 
[asdf, asdf, asdf, asdf, asdf] 

マイtest.txt

asdf,asdf,asdf,asdf,asdf 
asdf,asdf,asdf,asdf,asdf 
+0

あなたは命の恩人です!正確に私があなたに感謝したことはありがとう! –

+0

もう1つ質問がありますが、別の行の最初の値を取得するにはどうすればよいでしょうか?今すぐif(list.get(0).contains(firstValue)){do stuff}を実行していますが、2行目に最初の値を入力するとif文はfalseになります。 –

+0

行列があります。最初のインデックスは行numと2番目の列numです。したがって、 'list.get(0)list.get(1)list.get(2)....'のような行にアクセスすると、 'list.get(1) 'のようにこの行の任意の列にアクセスできます。 (0) ' –

関連する問題