java读取格式化的文本文件,存储到arraylist中,并将信息与给定的命令行args进行比较

java读取格式化的文本文件,存储到arraylist中,并将信息与给定的命令行args进行比较,java,arraylist,command-line-arguments,Java,Arraylist,Command Line Arguments,我对java非常陌生,我有一个关于I/O的问题。 基本上我有一个特定格式的文件 a 7 a b 2 b c 6 c d 5 d e 4 e 程序需要做的是读取每一行,只在ArrayList中存储整数字段 然后在命令行参数中给定,程序应该能够回答整数等于或大于命令行参数的字母数 例如,如果命令行参数为5,则返回的答案应为2 我在下面的代码中所做的只是用扫描器读取每一行,并将所有信息存储到ArrayList中。我知道这与要求相去甚远,因为我被困在如何只将integers字段存储到ArrayList

我对java非常陌生,我有一个关于I/O的问题。 基本上我有一个特定格式的文件

a 7 a
b 2 b
c 6 c
d 5 d
e 4 e
程序需要做的是读取每一行,只在ArrayList中存储整数字段

然后在命令行参数中给定,程序应该能够回答整数等于或大于命令行参数的字母数

例如,如果命令行参数为5,则返回的答案应为2

我在下面的代码中所做的只是用扫描器读取每一行,并将所有信息存储到ArrayList中。我知道这与要求相去甚远,因为我被困在如何只将integers字段存储到ArrayList以及命令行args部分

import java.io.*;
import java.util.*;

public class TestArrayList
{
    private static ArrayList<String> list = new ArrayList<String>();
    public static void main (String[] args)
    {
        try {
            Scanner s = new Scanner(new File("test.txt"));

            while (s.hasNext()) {
                list.add(s.next());             
            }

        } catch (Exception e) {
            e.printStackTrace();            
        }
        System.out.println(list);
    }
}

任何帮助都将不胜感激。提前谢谢你

要从命令行获取参数,可以从主字符串[]args方法参数的args中获取

它是字符串数组,命令行参数按空格逐个读取

在这个问题中,您不应该存储整数的ArrayList,因为它包含字符串。但您可以通过使用Integer.parseIntyourstring number方法从字符串转换得到整数

在我看来,您应该实现自己的比较方法来比较arg和格式化输入,如果您可以指定a>b或任何您需要的内容


希望这有帮助

因此,对于上面的示例,如何专门将每行上的整数值存储到arraylist中?抱歉,我仍然感到困惑。您可以在while循环中使用它,尝试{Integer=Integer.parses;list.addinteger}catchException e{System.out.printlnnot a number;}将所有输入解析为Integer,然后将其放入arraylist,当然,如果Integer.parseInta或其他非数字异常将被抛出,并且不会将其添加到Integer arraylist中。这是你需要的吗?