2017-12-03 13 views
0

テキストファイルを参照するコードを作成しようとしていますが、whileループは各行を読み込むようにしますが、私はいくつかのifステートメントを実行することができるように配列にする。現在私が抱えている問題は、配列内のすべての単語の代わりに、配列内のファイル内のすべての単語を現在格納しているということです。Javaは行内のテキストファイルを読み込みますが、行内の別々の単語を配列に入れます

ここに私の現在のコードの一部:

public static void main(String[] args) throws IOException { 

    Scanner in = new Scanner(new File("test.txt")); 
    List<String> listwords = new ArrayList<>(); 


while (in.hasNext()) { 
     listwords.addAll(Arrays.asList(in.nextLine().split(" "))); 
} 


    if(listwords.get(4) == null){ 
     name = listwords.get(2); 
    } 
    else { 
     name = listwords.get(4); 
    } 

答えて

2

あなたは行ごとに文字列の配列を持つようにしたい場合は、代わりにこのように書きます:

List<String[]> listwords = new ArrayList<>(); 

while (in.hasNext()) { 
    listwords.add(in.nextLine().split(" ")); 
} 

をところで、あなたがいるように見えます"array"と "ArrayList"という用語を同じ意味で使用してください。 これは間違いですが、それは別のものです。あなたは行ごとに文字列のListを持つようにしたい場合は、代わりにこのように書く

List<List<String>> listwords = new ArrayList<>(); 

while (in.hasNext()) { 
    listwords.add(Arrays.asList(in.nextLine().split(" "))); 
} 
+0

最初の解決策は私が探しているものですが、タイプ文字列である、私が割り当てている多くの変数はエラーメッセージを表示します:互換性のない型:String []をStringに変換できません...この問題を解決するにはどうすればよいですか? – madhaj1

+0

@ madhaj1あなたのフォローアップの質問は不明です。そして、サイト上で新しい質問をする方が良いでしょう。 – janos

1

あなたは新しい行に分割すること

listwords.addAll(Arrays.asList(in.nextLine().split("\\r?\\n")));

を使用することができます。必要に応じて、これらをWhitespaceでさらに分割することができます。

関連する問題