JAVA - 分裂字符串2定界符
问题描述:
我有一个文本文件是这样的:JAVA - 分裂字符串2定界符
fname, lname~email~info
fname, lname~email~info
fname, lname~email~info
fname, lname~~info
我需要这些字符串分割成或为1或2D阵列。我已经使用这个代码:
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
为字符串(Yes(是)空格)
我将如何在一步拆分中实现此目标?请注意,文本文件的最后一行没有电子邮件部分,因此分割应该存储空字符串,而不是跳过它。
感谢
答
你可以把它改成
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");
}
}
答
我会说你正在寻找拆就~
和换行符序列。以下内容应该适合你。
everything.split("~|[\r\n]+");
谢谢,但这会分裂FNAME和LNAME之间的空间,我需要“FNAME,LNAME”是一个字符串 – Casper 2014-11-14 23:55:58
的标准是什么分裂?只是〜?如果是这样,那么拿出'| \ s +'部分,你就会很好。 – ash 2014-11-15 00:01:21
@Herious你的问题又是什么?你想如何分割字符串?您想做什么 ? – StackFlowed 2014-11-15 00:03:25