【问题标题】:Read file and store values into two arrays, one for each line读取文件并将值存储到两个数组中,每行一个
【发布时间】:2014-03-06 11:39:48
【问题描述】:

我在这里得到了这个代码:

   try{

        FileReader file = new FileReader("/Users/Tda/desktop/ReadFiles/tentares.txt");

        BufferedReader br = new BufferedReader(file);


        String line = null;


        while((line = br.readLine()) != null){


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

            grp1 = new int[values.length]; 


            for(int i=0; i<grp1.length; i++){
                try {
                    grp1[i]= Integer.parseInt(values[i]);

                }catch (NumberFormatException e) {
                    continue;
                }
            }               
            System.out.println(Arrays.toString(grp1));

        }

        System.out.println("");

        br.close();

    }catch(IOException e){
        System.out.println(e);
    }

这是我正在读取的文件包含的内容。

       grp1:80,82,91,100,76,65,85,88,97,55,69,88,75,97,81 
       grp2:72,89,86,85,99,47,79,88,100,76,83,94,84,82,93

现在我将值存储到一个 int 数组中。 但是如果我想将每行值存储到两个数组中呢?

考虑以某种方式使用 Arrays.CopyOfRange,并从 int 数组中复制值 分成两个新数组。

【问题讨论】:

  • 您是否尝试添加两个数组。很简单,继续做就可以了。
  • 您也可以使用二维数组,其中每个第一级索引对应一行,每个第二级索引对应一个分割int
  • 数字 80 和 72 怎么样,每行的第一个数字是什么?它们与字符和 ':' 粘在一起,会导致 NumberException。你没看错,但数字不会存储在你的数组中......
  • 如何将数字 80 和 72 放入数组中?
  • @user2874051 试试我的回答:-)

标签: java arrays split bufferedreader


【解决方案1】:

此答案与您的问题不对应,但会在您的问题帖子下提示我的评论。

在你的 while 循环开始时试试这个:

  1. 使用String.IndexOf() 查找字符: 在每一行中的第一次出现。这将是第二部分的开始索引。
  2. 从您的新开始索引中将String.Substring() 呼叫到line.length。这将为您提供没有字符的行,并且您的第一个数字不会丢失。

【讨论】:

  • 谢谢,我试试看:)
【解决方案2】:

while之前

List<int[]> groups = new ArrayList<>();

循环结束前:

groups.add(grp1);

之后:

for (int[] grp : groups) {
    ...
}

List 对于不断增长的“数组”很有用。

groups.size()     grp1.length
groups.get(3)     grp1[3]
groups.set(3, x)  grp1[3 = x

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-24
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多