2

Android res / rawフォルダーにサンプルテキストファイルを追加し、ファイルの各行を文字列配列リストに追加しようとしています。

たとえば、サンプルテキストファイルに次の行が含まれているとします。

サンプルライン1

サンプルライン2

サンプルライン3

これらの3つの文を3つの文字列として文字列配列リストに追加したいと思います。次のコードを試しました。

List<String> sampleList = new ArrayList<String>();    
Scanner s = null;
s = new Scanner(getResources().openRawResource(R.raw.sample));
while (s.hasNextLine()){
    sampleList.add(s.next());
}
s.close();

上記のコードは、配列リストの各単語を追加し、予想される配列サイズ3の各文を追加するのではなく、配列サイズ9になります。ご協力いただきありがとうございます。

4

2 に答える 2

3

代わりにScanner#nextLine()を使用してくださいScanner#next()

sampleList.add(s.nextLine());

スキャナーはデフォルトの区切り文字としての空白を使用します。Scanner#next()このスキャナーから次の完全なトークンを見つけて返します。完全なトークンの前後には、区切り文字パターンに一致する入力があります。

Scanner#useDelimiter(delim)を使用して、スキャナーの区切り文字を次の行(\ n)に設定することもできます。

s = new Scanner(getResources().openRawResource(R.raw.sample)).useDelimiter("\n");
while (s.hasNextLine()){
   sampleList.add(s.next());
}

Scanner.next()これで、次の行(\ n)を区切り文字として使用できるようになります。

于 2013-02-24T00:20:38.157 に答える
1

使用する代わりに

s.next()

使用する

s.nextLine()

Scanner.nextLineごと

于 2013-02-24T00:22:53.330 に答える