我有一个像这样的文本文件:
fname, lname~email~info
fname, lname~email~info
fname, lname~email~info
fname, lname~~info
我需要将这些字符串拆分为一维或二维数组。我用过这段代码:
public void readFile() throws IOException {
BufferedReader br = new BufferedReader(new FileReader("contacts.txt"));
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
String everything = sb.toString();
// store data into array
for (String retval: everything.split("~")){
System.out.println(retval);
}
// store data into array
//String[] retval = everything.split("~");
//System.out.println(retval[2]);
} finally {
br.close();
}
}
但问题是阅读器不会拆分新行,它最终将其作为字符串提供给我
info
fname, lname
作为字符串(是的,带有空格)
我如何在拆分的一步内实现这一目标?请注意,文本文件的最后一行没有电子邮件部分,因此拆分应存储一个空字符串,而不是跳过它。
谢谢
最佳答案
您可以将其更改为
everything.split("~|[\r\n]+");
编辑:
for (String retval: everything.split("~")){
if(retval !=null && !retail.isEmpty) {
System.out.println(retval);
} else {
System.out.Println("String is empty or null");
}
}
关于JAVA - 用 2 个分隔符分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26940731/