java - java中使用分隔符填充数组

标签 java arrays

我有一个用制表符分隔的文本文档。每行都有相同类型的重复信息。当我使用 hasNextLine() 和计数器来计算行数时,它只计算一部分行。我仍然可以创建与我得到的计数器大小相同的数组。当我使用 for 循环填充数组时,结果是意外的。

这是我所做的总结。

    import java.util.*;
    import java.io.*;
    public class Test {
        public static void main(String[] args) {
            try {
                Scanner input = new Scanner(new File("input.txt"));
                int lines = 0;
                input.nextLine(); //for the header of the table
                while(input.hasNextLine()) {
                    lines++;
                    input.nextLine();
                }
                System.out.println(lines);//here I don't get the total amount
                String[] colors = new String[lines];
                int[] number = new int[lines];
                fillArray(colors, number);
                System.out.println(colors[i] + i);
            }
            catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
        public static void fillArray(String[] color, int[] numbers) {
            try {
                Scanner input = new Scanner(new File("input.txt"));
                input.nextLine(); //for table header
                input.useDelimiter("\\t");
                for(int i = 0; i < color.length; i++) {
                    color[i] = input.next();
                    input.next(); //info i'm not using
                    numbers[i] = input.nextInt();
                    input.nextLine(); //consumes '\n'
                }
             }
             catch (Exception e) {
                 System.out.println(e.getMessage());
             }
         }
    }

它可以编译,但我的结果如下所示:

空\n 黄色0\n 空1\n 空2\n 空3\n 等等

它还显示正确的颜色和数字;但仅限一行。

如有任何帮助,我们将不胜感激。我没有太多使用 useDelimiter 但据我了解,它会使 '\t' 分隔标记而不是空格和 '\n'

最佳答案

别担心,使用它:

final List<String> lines = Files.readAllLines(Paths.get("input.txt"),
    StandardCharsets.UTF_8);

读取的行数就像lines.size()一样简单,您只需遍历列表即可处理您的行。

关于java - java中使用分隔符填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22493668/

相关文章:

Java Web 应用程序多用户 session 处理

java - Eclipse Java - 发生错误 (Win10)

javascript - 如何将数组写入 Google 电子表格?

arrays - 在遍历数组时为每个元素添加延迟

java - Log4j 不打印到控制台

java - 如何打印一系列从 1 小于 x 到 0 结束的数字?

java - 将spark sql 2.4.4数据帧中的Avro类型消息生成到Kafka

java - 使用两个不同的标准对数组进行排序

javascript - 我有一个具有父 id 的平面数组,我想将其嵌套起来,就像使用 javascript 的树父子数组一样

javascript - 根据 100 max 计算数组