Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Scanner将文本文件分为两部分_Java - Fatal编程技术网

Java 如何使用Scanner将文本文件分为两部分

Java 如何使用Scanner将文本文件分为两部分,java,Java,输入(以空格分隔): 我希望按照如下方式处理这些输入: 对于文本文件中的每一行::(第一个_元素,例如1)放入一个int变量(例如m),然后(下一个_元素,例如1、2、3)放入一个ArrayList(例如N) 我尝试了以下方法: Scanner file_scanner = new Scanner(filename); while (file_scanner.hasNextLine()) { String[] line = file_scanner.ne

输入(以空格分隔):

我希望按照如下方式处理这些输入:

对于文本文件中的每一行::(第一个_元素,例如1)放入一个int变量(例如m),然后(下一个_元素,例如1、2、3)放入一个ArrayList(例如N)

我尝试了以下方法:

Scanner file_scanner = new Scanner(filename);
  while (file_scanner.hasNextLine()) {              
     String[] line = file_scanner.nextLine().split("\\s+");
     String str1 = line[0];
     String str2 = line[1];

     m = Integer.parseInt(str1);

     Scanner line_scanner = new Scanner(str2);
     while(line_scanner.hasNext()) {
        int n = line_scanner.nextInt();
        N.add(n);
     }
  }

但是我不能像我想的那样解析输入。关于如何使用扫描仪处理输入行的两个部分,有什么建议吗?或者,甚至是如何检查当前行的结尾(EOL)以及如何更容易地解析第一个元素?

试试这个
String[]line=file\u scanner.nextLine().split(“\\s+”,2)在您的代码中。它只会将每行分割为2个令牌


编辑:第[1]行将包含其余的数字,您无需再次对其进行分析。

很抱歉,这可能不是最有效的,因为现在是凌晨4:39:

    Scanner s = new Scanner(file);
    int m  = 0;
    List<Integer> list = null;

    while(s.hasNextLine())
    {
        Scanner s2 = new Scanner(s.nextLine());
        int count = 0;

        list = new ArrayList<Integer>();
        while (s2.hasNextInt())
        {

            if(count == 0)
            {
                m = s2.nextInt();
            }
            else
            {
                list.add(s2.nextInt());
            }
            count++;
        }
        System.out.println(m + " " + list);
    }
Scanner s=新的扫描仪(文件);
int m=0;
List=null;
而(s.hasNextLine())
{
扫描仪s2=新扫描仪(s.nextLine());
整数计数=0;
列表=新的ArrayList();
while(s2.hasNextInt())
{
如果(计数=0)
{
m=s2.nextInt();
}
其他的
{
list.add(s2.nextInt());
}
计数++;
}
System.out.println(m+“”+列表);
}

非常感谢!!现在它救了我的命:)
    Scanner s = new Scanner(file);
    int m  = 0;
    List<Integer> list = null;

    while(s.hasNextLine())
    {
        Scanner s2 = new Scanner(s.nextLine());
        int count = 0;

        list = new ArrayList<Integer>();
        while (s2.hasNextInt())
        {

            if(count == 0)
            {
                m = s2.nextInt();
            }
            else
            {
                list.add(s2.nextInt());
            }
            count++;
        }
        System.out.println(m + " " + list);
    }