Java 如何使用Scanner将文本文件分为两部分
输入(以空格分隔): 我希望按照如下方式处理这些输入: 对于文本文件中的每一行::(第一个_元素,例如1)放入一个int变量(例如m),然后(下一个_元素,例如1、2、3)放入一个ArrayList(例如N) 我尝试了以下方法: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
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);
}