2015-10-13 84 views
0

我有這樣的配置,我必須創建一個簡單的購物界面,用戶可以在其中註冊,登錄和購買。因爲這是一個簡單的問題,所以我不會考慮安全問題或任何其他問題,所以當新用戶註冊時,我只需將每個文本框(姓名,電子郵件,國家等)的數據添加到數組列表中,然後將其添加到數組列表中將其存儲到一個txt文件中,每行一個用戶。 當你打開txt文件的每一行看起來是這樣的:在txt文件中讀取存儲陣列Java

[姓名,電子郵件,密碼,國家,州,ADRESS,生日]

現在我試圖做日誌在這種方法中,我只需要比較文本框上的輸入和每個用戶的每個數組列表上的定義索引(用戶[1]爲email,用戶[2]爲密碼),但是當我讀取文件從行中,它只是使整個列表成一個像這樣的大字符串:

"[Name,email,password,Country,State,adress,birthdate]" 

有沒有一種方法可以將每行讀取爲一個數組列表?

順便說一句,我使用的BufferReader和的FileReader庫

(英語不是我的母語是這樣,如果有什麼不明確,請詢問所以我可以嘗試澄清)

+0

可能我建議'ArrayList'可能不是最好的主意。最好是創建一個自定義類,寫'toString()'和'parseString()'函數並使用它來完成數據存儲和檢索?真的不應該真的增加任何複雜的代碼。 –

+0

首先使用String方法去除末尾和起始括號,然後調用String的split(...)方法來分割String。 –

回答

0

到目前爲止太好了!

假設這是字符串:

String myLine = "[Name,email,password,Country,State,adress,birthdate]"; 

你想要做的第一件事就是拿出支架[]

myLine = myLine.substring(1, myLine.length() - 2); 

現在我們拿到的這款:

Name,email,password,Country,State,adress,birthdate 

所以我們必須拆分數據。觀察這裏的分隔符是如何使用逗號,。您可以分割字符串是這樣的:

Strings[] fragments = myLine.split(","); 

數組fragments包含每個數據塊。例如,名稱將在fragments[0]中,地址在fragments[5]

這就是這裏的基本原則。但是,有一些明顯的問題。例如,我認爲用戶的密碼很可能包含逗號。這會打破我們上述的方法。

有很多方法可以解決這個問題,但最簡單的方法可能是使用不是逗號的分隔符。

+0

哇,謝謝你真的解決了我現在的問題。很好的解釋,這就是爲什麼這個社區如此棒! – Twhite1195