我正在尝试使用拆分功能从文件(即contact.txt)中读取contact name
,email
和mobile number
。所以我使用\n
和"<space>"
将所有字符串捕获到数组中。
在我的文件contact.txt
中,数据如下:
name1 email1 mobile_1
name2 email2 mobile_2
name3 email3 mobile_3
name4 email4 mobile_4
name5 email5 mobile_5
name6 email6 mobile_6
这是我的代码:
String usersInfo;
BufferedReader br = new BufferedReader(new FileReader("C:/contact.txt"));
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
usersInfo = sb.toString();
} finally {
br.close();
}
String[] splitStrNewLine = usersInfo.split("\n");
String[] splitStrSpace = usersInfo.split("[ \n]");
for(int i=0; i<=5; i++){
for(int j=0; j<=2; j++){
System.out.println(splitStrSpace[j]);
}
}
现在它开始给出输出相同的字符串,重复循环,输出如下:
name1
email1
mobile_1
name1
email1
mobile_1
name1
email1
mobile_1
name1
email1
mobile_1
name1
email1
mobile_1
name1
email1
mobile_1
请让我知道,如何明智地检索我的所有数据系列?
帮助将不胜感激,提前致谢!
答案 0 :(得分:0)
尝试阻止后尝试此操作
String[] splitStrNewLine = usersInfo.split("\n");
fileLength = splitStrNewLine.length();
for(int i=0; i<fileLength; i++){
splitStrSpace = splitStrNewLine[i].split("[ ]"); \\specify delimiter you want to split
for(int j=0; j<splitStrSpace.length(); j++){
System.out.println(splitStrSpace[j]);
}
}
答案 1 :(得分:0)
我可以建议你继续使用真正的收藏结构吗?您正在使用readLine获取行。为什么要将它们与插入的字符粘贴在一起然后需要再次解析?
feathers
现在你有一个易于迭代的结构,你得到的每一行都与它相同。现在,只需迭代这些行,并根据需要拆分每一行:
List<String> usersInfo = new ArrayList<String>()
BufferedReader br = new BufferedReader(new FileReader("C:/contact.txt"));
try {
String line = br.readLine();
while (line != null) {
lines.add(line);
line = br.readLine();
}
} finally {
br.close();
}