2013-12-17 33 views
0

我得到了一個製表符分隔的文件,我想通過製表符和換行符進行拆分,其中製表符代表字段之間的分隔符,換行符表示應創建的新對象。該文件可以是這樣的:如何通過製表符和換行符來分割字符串?

Peter\[email protected]\tpeterpassword\nBob\[email protected]\tbobbypassword\n...

其中\t是一個標籤,\n是一個換行符。

我想啓用上傳這個文件到我的程序,該文件中的每一行都有一個新的用戶。但是我怎樣才能使用兩個標記 - tab和newline?我的代碼看起來像下面這樣:

String everything = ""; 
BufferedReader br = null; 
try { 
    br = new BufferedReader(new InputStreamReader(file.getInputStream())); 
    StringBuilder sb = new StringBuilder(); 
    String line = br.readLine(); 

    while (line != null) { 

     //now create object according to the string 
     StringTokenizer st = new StringTokenizer(line , "\t");  
     String name = st.nextToken(); 
     String email = st.nextToken(); 
     String password = st.nextToken(); 
     User.createNewUser(name, email, password); 

     sb.append(line); 
     sb.append('\n'); 
     line = br.readLine(); 
    } 
    everything = sb.toString(); 
    br.close(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
System.out.println("Everything: " + everything); 

會像上述工作代碼?

+0

測試一下,找出答案。 – MadConan

+0

和FYI:StringTokenizer可以攜帶多個令牌。 – MadConan

+0

你爲什麼不嘗試它,讓我們知道! – Bohemian

回答

2

我會爲每一行做一個String.split("\\n")。然後,您可以獲得每個用戶所需的全部信息。做另一個String.split("\\t")並使用結果數組構造你的對象。

從Java文件:

的StringTokenizer是保留兼容性的原因,雖然它的使用是在新代碼氣餒的遺留類。建議任何尋求此功能的人使用String或java.util.regex包的拆分方法。

http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html

相關問題