Java:如何将文件选择性地扫描到两个二维字符串数组中

Sharlabean

如何选择性地将文件扫描成两个2d字符串数组?

我有一个看起来像这样的文件:

2014 fruit apple red 50 30
2015 vegetable spinach green 10
2014 fruit orange orange 100
2014 fruit banana yellow 90 100
2015 vegetable corn yellow 120

我正在尝试读取文件,并将每一行放入2d字符串数组(由空格分隔)。我想要一个仅由2014年开始的行组成的数组,以及另一个由2015年开始的行形成的数组。

因为它是针对一个类的,所以我坚持使用严格的参数:1.它必须来自文本文件,并且2.必须进入两个2d数组。

我能够将整个文件成功读取到一个2d String数组中,但是我为两个数组尝试的所有操作似乎都失败了。这就是我得到的...成功的单个2d数组:

public static void main(String[] args) throws Exception {

    //Initializes the variables needed to read the line length of the file
    FileReader fr = null;
    LineNumberReader lnr = null;
    File newFile = new File("ProjectTest.txt");

    //Initiallizes the variables needed to create the 2D array
    BufferedReader inputStream = new BufferedReader(new FileReader(newFile));
    Scanner scannerIn = new Scanner(inputStream);

    //Other variables
    int lineNum = 0;
    int linesCounter = 0;
    String str;

    //Determines how many lines in the file
    try {
        fr = new FileReader(newFile);
        lnr = new LineNumberReader(fr);
        while (lnr.readLine() != null) {
            lineNum++;
        }
    } catch (Exception e) {
        System.out.println(e.getMessage());
    } finally {
        if (fr != null) {
            fr.close();
        }
        if (lnr != null) {
            lnr.close();
        }
    }

//Create the 2D array
    String arrayA[][] = new String[lineNum][];

    while (scannerIn.hasNextLine() && linesCounter < lineNum) {
        arrayA[linesCounter] = scannerIn.nextLine().split("\\s");
       linesCounter++;
    }

//Test-print the array
for (int i = 0; i< lineNum; i++){
         System.out.println(arrayA[i][2]);
     }
}

我尝试了许多不同的方法来尝试将这些数据分成两个阵列,但是我认为我的困惑来自于何时以及如何使用扫描器与缓冲读取器。我尝试过if / then语句,仅将2014行读入一个数组,并且尝试将一个数组复制到另一个数组。不用说,我把它们都弄错了。这是使用if / then语句对两个2d数组进行的多次尝试之一:

String arrayA[][] = new String[lineNum][];
String arrayB[][] = new String[lineNum][];

String line = inputStream.readLine();

    while (line != null) {
        if (line.contains("2014")){
            arrayA[linesCounter] = inputStream.readLine().split("\\s");
            linesCounter++;
        } else {
            arrayB[linesCounter] = inputStream.readLine().split("\\s");
            linesCounter++;
        }
    }

请帮我!!我感谢你们!

亚诺斯

这是一种实现方法:

String[][] arrayA = new String[lineNum][];
String[][[ arrayB = new String[lineNum][];

int counterA = 0;
int counterB = 0;

while (scannerIn.hasNextLine()) {
    String line = scannerIn.nextLine();
    String[] parts = line.split("\\s");
    if (line.startsWith("2014")) {
        arrayA[counterA++] = parts;
    } else if (line.startsWith("2015")) {
        arrayB[counterB++] = parts;
    }
}

// prune excess elements
arrayA = Arrays.copyOf(arrayA, counterA);
arrayB = Arrays.copyOf(arrayB, counterB);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java:如何将文件选择性地扫描到两个二维字符串数组中

来自分类Dev

将字符串解析为两个二维字符串数组

来自分类Dev

在Java中,如何将两个一维数组放入一个二维数组中?

来自分类Dev

使用两个不同的拆分将字符串分成二维数组

来自分类Dev

如何将字符串中的值分配给二维数组?

来自分类Dev

Java:如何将一维字符串/整数数组表示为二维整数数组?

来自分类Dev

如何将两个一维列表组合成二维数组?

来自分类Dev

如何将二维字符串数组转换为一维字符串数组?

来自分类Dev

如何将二维数组类型字符(字符串)作为函数参数传递?

来自分类Dev

如何将逗号和分号分隔的字符串拆分为二维数组

来自分类Dev

如何将二维字符串数组传递给powershell脚本?

来自分类Dev

如何将二维numpy数组中的所有数字转换为字符串?

来自分类Dev

Java:如何将字符串格式为 {i,j},{i,j},{i,j} 的文本文件转换为二维数组?

来自分类Dev

Java中的二维字符串数组

来自分类Dev

如何从二维数组中检索字符串

来自分类Dev

将文件中的单词读入二维字符串数组

来自分类Dev

卡在二维数组上,将指针插入文件中的字符串

来自分类Dev

将字符串附加到二维数组 Java 中

来自分类Dev

将字符串读取到C中的二维字符串数组中

来自分类Dev

在二维字符串数组java中搜索字符串

来自分类Dev

如何:在二维字符串数组中插入特定字符串

来自分类Dev

将二维字符串数组转换为二维数组

来自分类Dev

如何比较两个二维数组?

来自分类Dev

比较 C 中的两个二维数组

来自分类Dev

将文本文件中的字符串扫描到数组中时出现问题

来自分类Dev

php:将数组类型值从字符串选择性地转换为int

来自分类Dev

如何使用NumPy将包含字符串和浮点值的CSV文件读入二维数组

来自分类Dev

如何创建一个给定字符串的二维字符数组?

来自分类Dev

如何从字符串读取numpy二维数组?

Related 相关文章

  1. 1

    Java:如何将文件选择性地扫描到两个二维字符串数组中

  2. 2

    将字符串解析为两个二维字符串数组

  3. 3

    在Java中,如何将两个一维数组放入一个二维数组中?

  4. 4

    使用两个不同的拆分将字符串分成二维数组

  5. 5

    如何将字符串中的值分配给二维数组?

  6. 6

    Java:如何将一维字符串/整数数组表示为二维整数数组?

  7. 7

    如何将两个一维列表组合成二维数组?

  8. 8

    如何将二维字符串数组转换为一维字符串数组?

  9. 9

    如何将二维数组类型字符(字符串)作为函数参数传递?

  10. 10

    如何将逗号和分号分隔的字符串拆分为二维数组

  11. 11

    如何将二维字符串数组传递给powershell脚本?

  12. 12

    如何将二维numpy数组中的所有数字转换为字符串?

  13. 13

    Java:如何将字符串格式为 {i,j},{i,j},{i,j} 的文本文件转换为二维数组?

  14. 14

    Java中的二维字符串数组

  15. 15

    如何从二维数组中检索字符串

  16. 16

    将文件中的单词读入二维字符串数组

  17. 17

    卡在二维数组上,将指针插入文件中的字符串

  18. 18

    将字符串附加到二维数组 Java 中

  19. 19

    将字符串读取到C中的二维字符串数组中

  20. 20

    在二维字符串数组java中搜索字符串

  21. 21

    如何:在二维字符串数组中插入特定字符串

  22. 22

    将二维字符串数组转换为二维数组

  23. 23

    如何比较两个二维数组?

  24. 24

    比较 C 中的两个二维数组

  25. 25

    将文本文件中的字符串扫描到数组中时出现问题

  26. 26

    php:将数组类型值从字符串选择性地转换为int

  27. 27

    如何使用NumPy将包含字符串和浮点值的CSV文件读入二维数组

  28. 28

    如何创建一个给定字符串的二维字符数组?

  29. 29

    如何从字符串读取numpy二维数组?

热门标签

归档