导入和拆分CSV输入,需要帮助只读取第一个字符

时间:2017-04-05 23:31:44

标签: java arrays excel csv

处理类项目,在将数据读入数组后遇到问题。

在excel电子表格中,我需要直接阅读一栏,只关注每个块中的第一个数字。当我拆分列时,它是一个没有空格的连续字符串,所以我无法弄清楚如何只计算第一个数字而不是计算每个数字(正如代码现在所做的那样)。 示例:(11,20,296)被拆分,变为“1120296”

        final int[] benfordLaw = {0, 30, 18, 13, 10, 8, 7, 6, 5, 5};
        int[] actualPrecent = new int[10];
        int benfordScore = 0;
        float[] countForNum = new float[10];
        float totalCount = 0;

        //This while loop will read through each line of the file
        while (scan.hasNextLine()) {

            // This statement reads in the next line of the file.
            String line = scan.nextLine();

            String[] values = line.split(",(?=(?:(?:[^\"]*+\"){2})*+[^\"]*+$)");


            //12-15 is the column #'s
            for (int i = 12; i < 15; ++i) {
                for (int j = 0; j < values[i].length(); j++) {
                    char charA = values[i].charAt(j);
                    for (int k = 1; k <= 9; ++k){
                        char compare = (char)(k + '0');
                        if (charA == compare) {
                            ++countForNum[k];
                            ++totalCount;
                        }
                    }
                }
            }
        }

1 个答案:

答案 0 :(得分:0)

我想我并没有完全明白你的问题,但希望有所帮助

示例:(11,20,296)被拆分,成为&#34; 1120296&#34; =&GT;如果你只想在文本中获得11

读取行并获取字符串 Sol 1.) a)删除第一个和最后一个字符 b)Split.Text并修剪它。 c)获得第一个

Sol 2.) 使用RegEx并获取第一个元素 ex RegEx。)([0-9] *),

祝你好运