簡體   English   中英

如何通過制表符和換行符拆分字符串?

[英]How to split a string by tabs and newlines?

我有一個制表符分隔的文件,我希望按制表符和換行符分割,其中制表符表示字段之間的分隔符,換行符表示應創建的新對象。 該文件可能如下所示:

Peter\\tpeter@example.com\\tpeterpassword\\nBob\\tbob@bobby.com\\tbobbypassword\\n...

其中\\t是選項卡, \\n是換行符。

我想啟用上傳此文件到我的程序,該程序為文件中的每一行創建一個新用戶,並在該行上顯示字段。 但是我如何使用兩個標記 - tab和換行符? 我的代碼看起來如下所示:

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);

代碼會像上面這樣工作嗎?

我會為每一行做一個String.split("\\\\n") 然后,您將獲得每個用戶所需的所有信息。 執行另一個String.split("\\\\t")並使用生成的數組構造對象。

來自Java Doc:

StringTokenizer是一個遺留類,出於兼容性原因而保留,盡管在新代碼中不鼓勵使用它。 建議任何尋求此功能的人都使用String的split方法或java.util.regex包。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM