在Java中阅读文本文件时,如何忽略一行字符串文本?

aoyhnmkz  于 2023-08-01  发布在  Java
关注(0)|答案(1)|浏览(113)

在我的程序中,我必须读取一个文本文件,其中第一行将有一个带有文本的字符串,下面的一行/多行将有整数。我需要能够读取第一个字符串,忽略它,然后继续阅读整数,以便进行计算。我不确定如何读取第一个文本字符串,并忽略它,继续阅读下一行整数。
对于这个程序,我不能使用数组或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();

    }

字符串

enxuqcxy

enxuqcxy1#

正如你的注解中已经提到的,你只需要在while循环之前放置以下代码就足够了:

// Ignore the first line (string) by reading it and not doing anything with it
if (inputFile.hasNextLine()) 
{
   inputFile.nextLine();
}

字符串
在这种情况下,“忽略第一行”意味着它读取第一行,但不对它做任何事情--这应该对你有用。
关于inputFile.hasNextInt()-你的代码的一部分-只是一个提示:
您当前正在阅读整行并将其转换为整数。它也会为你工作,如果你只是使用

if (inputFile.hasNextInt()) 
{
  System.out.println(inputFile.nextInt());
}


这将自动为您处理转换,因此您不必在自己的步骤中读取该行并将其转换为Integer。
继续写代码,你的代码看起来不错:)

相关问题