在循环中重复字符串

时间:2016-11-26 18:59:03

标签: java string loops split

我正在尝试使用拆分功能从文件(即contact.txt)中读取contact nameemailmobile 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

请让我知道,如何明智地检索我的所有数据系列?

帮助将不胜感激,提前致谢!

2 个答案:

答案 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();
}