Java 如何按制表符和换行符拆分字符串?
我得到了一个以制表符分隔的文件,我想按制表符和换行符进行拆分,其中制表符表示字段之间的分隔符,换行符表示应创建的新对象。该文件可以如下所示: 彼得\tpeter@example.com\tpeterpassword\nBob\tbob@bobby.com\tbobword\n.. 其中,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
\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”);