-1

ここでは、ファイルを単語ごとに読み取り、これらの単語でリスト ビューを操作しています。ここでの問題は、名と姓が異なる行に表示されることです。たとえば、Name = "John Clerk" の場合、リスト ビューの最初の行に "John"、2 行目に "Clerk" が表示されます。それらは単一の行にある必要があり、他のデータについても同様です。適切に動作させるには何を変更すればよいですか? 私のコード...

String myData = "";
String strLine;
String listName = "" ;
FileOutputStream fos;
FileInputStream fstream;
DataInputStream in;
String[] SavedFiles;
BufferedReader br;


public void readFile(String file) throws IOException
    {

        fstream = openFileInput(file);
        Scanner scanFile = new Scanner(new DataInputStream(fstream));
        ArrayList<String> words = new ArrayList<String>();


        String theWord, theWord1, theWord2;     
        while (scanFile.hasNext())
        {
            theWord = scanFile.next();
            words.add(theWord);

        }
        Toast.makeText(getBaseContext(), "" + size, 1000).show();


        adapterFriends = new ArrayAdapter<String>(getBaseContext(), R.layout.text, words);
        lvFinal.setAdapter(adapterFriends);
        adapterFriends.notifyDataSetChanged();

        }
4

2 に答える 2

2

\n 文字の間のすべての文字列を返す必要があるため、next() の代わりに nextLine() を使用してみてください。

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html#nextLine()

それが役立つことを願っています

于 2013-08-06T07:11:59.133 に答える
1

必要なものを正しく理解している場合は、これを試してください:

while (scanFile.hasNext())
{
   String name = scanFile.next();
   if (scanFile.hasNext())
   {
      name = String.format("%s %s", name, scanFile.next());
   } 

   words.add(name);    
}   
于 2013-08-06T07:40:53.510 に答える