将文本文件中的某些整数读入数组列表
Reading certain integers from a text file into a Array List
我必须读取文本文件中的两组整数。一个是学生可以拥有的学分数量,然后下一个整数是测试中的字母等级。我可以将整数读入 ArrayList,但问题是我想先读取它们拥有的信用量,然后选择将它们添加到哪个 ArrayList,在一定信用量或超过一定量的情况下。我不想增加学分数量,只增加他们获得的分数。我在文本文件中有 25 行整数,首先是学分,然后是 space,然后是成绩。我只需要记录成绩,而不是学分。
这是我的代码到目前为止的样子:
public static void main(String[] args) throws FileNotFoundException
{
try
{
ArrayList <Integer> over15credits = new ArrayList<>();
ArrayList <Integer> under15credits = new ArrayList<>();
FileReader myReader = new FileReader("geomClass.txt");
Scanner fileIn = new Scanner(myReader);
while(fileIn.hasNextInt())
{
if(fileIn.nextInt() >= 15)
{
over15credits.add(fileIn.nextInt());
}
else
{
under15credits.add(fileIn.nextInt());
}
System.out.println(over15credits);
System.out.println(under15credits);
}
}
catch(FileNotFoundException e)
{
System.out.println("!!FILE NOT FOUND!!");
}
}
当您执行 fileIn.nextInt()
时,它会读取并使用该号码,这样当您再次调用 fileIn.nextInt()
时,它会在之后读取该号码。
很可能您打算使用一个变量,以便您可以使用刚刚读取的数字。
int num = fileIn.nextInt();
if (num >= 15)
over15credits.add(num);
else
under15credits.add(num);
您想使用您刚读过的同一个号码,而不是另一个号码。
仅供参考,您也可以这样写。
int num = fileIn.nextInt();
(num >= 15 ? over15credits : under15credits).add(num);
我必须读取文本文件中的两组整数。一个是学生可以拥有的学分数量,然后下一个整数是测试中的字母等级。我可以将整数读入 ArrayList,但问题是我想先读取它们拥有的信用量,然后选择将它们添加到哪个 ArrayList,在一定信用量或超过一定量的情况下。我不想增加学分数量,只增加他们获得的分数。我在文本文件中有 25 行整数,首先是学分,然后是 space,然后是成绩。我只需要记录成绩,而不是学分。 这是我的代码到目前为止的样子:
public static void main(String[] args) throws FileNotFoundException
{
try
{
ArrayList <Integer> over15credits = new ArrayList<>();
ArrayList <Integer> under15credits = new ArrayList<>();
FileReader myReader = new FileReader("geomClass.txt");
Scanner fileIn = new Scanner(myReader);
while(fileIn.hasNextInt())
{
if(fileIn.nextInt() >= 15)
{
over15credits.add(fileIn.nextInt());
}
else
{
under15credits.add(fileIn.nextInt());
}
System.out.println(over15credits);
System.out.println(under15credits);
}
}
catch(FileNotFoundException e)
{
System.out.println("!!FILE NOT FOUND!!");
}
}
当您执行 fileIn.nextInt()
时,它会读取并使用该号码,这样当您再次调用 fileIn.nextInt()
时,它会在之后读取该号码。
很可能您打算使用一个变量,以便您可以使用刚刚读取的数字。
int num = fileIn.nextInt();
if (num >= 15)
over15credits.add(num);
else
under15credits.add(num);
您想使用您刚读过的同一个号码,而不是另一个号码。
仅供参考,您也可以这样写。
int num = fileIn.nextInt();
(num >= 15 ? over15credits : under15credits).add(num);