在我的程序中,我必须读取一个文本文件,其中第一行将有一个带有文本的字符串,下面的一行/多行将有整数。我需要能够读取第一个字符串,忽略它,然后继续阅读整数,以便进行计算。我不确定如何读取第一个文本字符串,并忽略它,继续阅读下一行整数。
对于这个程序,我不能使用数组或try... catch方法来求解。我必须只使用while循环和for循环以及if-else语句。
这是我目前为止的代码。它读取输入的文本文件,但我无法让它忽略文本字符串并继续处理数字。我不确定在while循环中放入什么才能让它正常工作。任何帮助是非常感谢!
import java.io.*;
import java.util.Scanner;
import java.lang.String;
public class Homework7_56299 {
//displays program purpose and asks user to enter a file name
public static void main(String[] args) throws IOException {
System.out.println("This program reads a number file and prints the statistics");
System.out.println("Enter a file name: ");
String fileName;
Scanner keyboard = new Scanner(System.in);
fileName = keyboard.nextLine();
processFile(fileName);
}
//this method reads the file and calculates the statistics
public static void processFile(String fileName) throws IOException
{
int smallest = Integer.MAX_VALUE;
int largest = Integer.MIN_VALUE;
double sum = 0.0;
int count = 0;
File file = new File(fileName);
//BufferedReader reader = new BufferedReader(new FileReader(new File(fileName)));
Scanner inputFile = new Scanner(file);
String str = null;
while (inputFile.hasNext())
{
if (inputFile.hasNextLine())
{
System.out.println();
}
if (inputFile.hasNextInt())
{
int num = Integer.parseInt(str);
System.out.println(num);
}
}
inputFile.close();
}
字符串
1条答案
按热度按时间enxuqcxy1#
正如你的注解中已经提到的,你只需要在while循环之前放置以下代码就足够了:
字符串
在这种情况下,“忽略第一行”意味着它读取第一行,但不对它做任何事情--这应该对你有用。
关于inputFile.hasNextInt()-你的代码的一部分-只是一个提示:
您当前正在阅读整行并将其转换为整数。它也会为你工作,如果你只是使用
型
这将自动为您处理转换,因此您不必在自己的步骤中读取该行并将其转换为Integer。
继续写代码,你的代码看起来不错:)