0

ファイルシステムのデータから名前のみのリストを次のように分離できますか?

Name    Age Sex Address
dani    21  Male    US
ron     34  Male    NY
stella  23  Female  NY
steave  43  Male    US  
[End]

ファイルに挿入するときに、上記のデータで区切り文字を「\t」として設定しようとしました。
私は試した

try 
{
fin = openFileInput("FileSystemDatabase.dat");
isr = new InputStreamReader(fin);
br = new BufferedReader(new InputStreamReader(fin));
while ((line = br.readLine()) != null) 
    {
           if (line.equals("\rName\tAge\tSex\tAddress\n"))
                 break;
    }
Pattern p = Pattern.compile("\r\n\\d\t");
while ((line = br.readLine()) != null) 
    {
           if (line.equals("[End]"))
                   break; 
           Matcher m = p.matcher(line);
           if (m.matches()) 
           {
                   text =m.group(1);
                   tv=new TextView(this);
                   tv.setText(text);

           }
    }
}
catch (Exception e)
{
    e.printStackTrace();
}

しかし、正しいリストを取得するための正しい結果が得られません。それを取得する簡単な方法はありますか?私を助けてください..

4

1 に答える 1

1

これを試してください..名前だけが表示されます:

     while ((line = br.readLine()) != null && (line.equals("Name\t\tAge\tSex\tAddress\n"))) {
            Log.e("String ", "" + line);
            break;
        }

        while ((line = br.readLine()) != null) {
            if (line.equals("[End]"))
                break;
            splitString = line.split(" ");
            Log.e("Name ", "" + splitString[0]);
        }

出力:

06-28 11:30:08.0009:E / String(3713):dani 21 Male US

06-28 11:30:08.0009:E / Name(3713):dani

06-28 11:30:08.0009:E / String(3713):ron 34 Male NY

06-28 11:30:08.0009:E / Name(3713):ron

06-28 11:30:08.0009:E / String(3713):stella 23 Female NY

06-28 11:30:08.0009:E / Name(3713):ステラ

06-28 11:30:08.0009:E / String(3713):スティーブ43男性米国

06-28 11:30:08.0009:E / Name(3713):スティーブ

于 2012-06-28T05:56:47.123 に答える