Java 如何按制表符和换行符拆分字符串?

Java 如何按制表符和换行符拆分字符串?,java,tokenize,tab-delimited,Java,Tokenize,Tab Delimited,我得到了一个以制表符分隔的文件,我想按制表符和换行符进行拆分,其中制表符表示字段之间的分隔符,换行符表示应创建的新对象。该文件可以如下所示: 彼得\tpeter@example.com\tpeterpassword\nBob\tbob@bobby.com\tbobword\n.. 其中,\t是一个选项卡,\n是一个换行符 我希望能够将此文件上载到我的程序,该程序将为文件中的每一行创建一个新用户,该行上有字段。但是我如何使用两个标记-tab和newline?我的代码如下所示: String eve

我得到了一个以制表符分隔的文件,我想按制表符和换行符进行拆分,其中制表符表示字段之间的分隔符,换行符表示应创建的新对象。该文件可以如下所示:

彼得\tpeter@example.com\tpeterpassword\nBob\tbob@bobby.com\tbobword\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);

代码是否要执行上述操作?

我会对每一行执行
字符串分割(\\n”)
。然后您就拥有了每个用户所需的所有信息。执行另一个
String.split(\\t”)
并使用生成的数组构造对象

从Java文档:

StringTokenizer是一个遗留类,尽管新代码中不鼓励使用它,但出于兼容性原因保留它。建议任何寻求此功能的人改用String的split方法或java.util.regex包


测试并找出答案。仅供参考:StringTokenizer可以使用多个令牌。为什么不试试并让我们知道呢!如果需要,还可以将其拆分为数组,并使用正则表达式进行拆分。String[]tokens=something.split(“\n | \\\t”);