在数组列表中将特定单词连接在一起

时间:2017-07-09 08:02:31

标签: java arrays

我有一个问题,假设我有一个像这样的文本文件:

姓名姓氏,号码,号码.....号码\ n 姓名中间姓,号码,号码......号码\ n 姓名,号码,号码.....号码\ n

我想将每行中的“names + surname”或“names + middle + surname”保存到一个数组列表索引中。 例如,我想要一个数组列表的一个索引中第一行的“Name Surname”。

我确实尝试使用字符串变量并在循环中将这两个元素一起添加。但正如您所看到的,名称并不是真正的任何特定类型。 我该怎么办?我真的很感激你的帮助!

3 个答案:

答案 0 :(得分:2)

假设您有一个名为String的{​​{1}}变量,它包含一个给定的行。在这种情况下:

line

这应该可以帮助您入门。

第一行将左边的部分分配给第一个逗号String namePart = line.substring(0, line.indexOf(",")); String dataPart = line.substring(line.IndexOf(",") + 1); 。第二行将第一行的右边部分分配给namePart。当然,您需要使用逗号分隔dataPart作为分隔符并构建数组或类似的东西,并将相关信息添加到项目集的新条目中。

答案 1 :(得分:1)

所以我做了上面答案中提到的内容。但我也做了一些不同的事情。

代码:

void readScore() {
    int nextToken;
    int numberOfTokens = 0;
    String nameOfStudent = "";
    BufferedReader bufferedReader = null;
    StreamTokenizer myToken;

    // create a buffered stream to read from the file
    try {
        bufferedReader = new BufferedReader(new FileReader(new File(inputFileName)));

    } catch (FileNotFoundException e) {
        System.out.println(
                "File Not Found. Please add file in the proper directory or give the proper file path and execute");
        System.exit(1); // exit if file not found
    }
    myToken = new StreamTokenizer(bufferedReader);
    myToken.eolIsSignificant(true);

    try {
        nextToken = myToken.nextToken();
        while (nextToken != StreamTokenizer.TT_EOF) {
            if (nextToken == StreamTokenizer.TT_NUMBER) {
                marks.add(myToken.nval);
                numberOfTokens++;
            }
            if (nextToken == StreamTokenizer.TT_WORD) {

                nameOfStudent += myToken.sval + " ";
            }
            if (nextToken == StreamTokenizer.TT_EOL) {
                students.add(nameOfStudent);
                nameOfStudent = "";
            }
            nextToken = myToken.nextToken();

有效!如果这是有效的,请告诉我。但它确实有效。

答案 2 :(得分:0)

我建议分开这条线:

String[] parts = line.split(",");

这为您提供了包含所有部分的数组。 parts[0]保存名称,以及后续索引中的所有数字。