当前位置: 首页 > 面试题库 >

从txt文件中仅读取整数并将每个发现的值相加

和选
2023-03-14
问题内容

我正在尝试读取一个包含整数字符串的txt文件。我希望能够仅从此文件中获取整数并将每个值相加以创建总计。我已经设法很好地读取了文件,并且能够识别整数和非整数。我将如何将整数加在一起?

public void goalCount() throws FileNotFoundException {

  int goals=0;
  double total=0;

  try {
    Scanner scan = new Scanner(new File("validtest.txt.txt"));

    // find the next int token and print it
    // loop for the whole scanner
    while (scan.hasNext()) {

      // if the next is a int, print found and the int
      if (scan.hasNextInt()) {
        System.out.println("Found :" + scan.nextInt());
        //goals = scan.nextInt();
        //total+= goals;
      }
      // if no int is found, print "Not Found:" and the token
      System.out.println("Not Found :" + scan.next());
    }

    // close the scanner
    scan.close();

  } catch(Exception e) {

  }
  System.out.println("Total Goals:"+total); //error handling
}

txt文件示例

Leeds United : Liverpool : 1 : 2
Chelsea :  Manchester City : 1 : 1
Aston Villa : Middlesbrough : 3 : 1
Tottenham Hotspur : Stoke City : 0 : 0

问题答案:

编辑:
您必须原谅我,该方法将不起作用。您需要做的是一次读取一行,然后按每个空格将其分开,以获得一组单词。从那里您可以识别整数并存储值。

final static String filename = "FILENAME.txt";

   public static void main(String[] args) {

      Scanner scan = null;
      File f = new File(filename);
      try {
         scan = new Scanner(f);
      } catch (FileNotFoundException e) {
         System.out.println("File not found.");
         System.exit(0);
      }

      int total = 0;
      boolean foundInts = false; //flag to see if there are any integers

      while (scan.hasNextLine()) { //Note change
         String currentLine = scan.nextLine();
         //split into words
         String words[] = currentLine.split(" ");

         //For each word in the line
         for(String str : words) {
            try {
               int num = Integer.parseInt(str);
               total += num;
               foundInts = true;
               System.out.println("Found: " + num);
            }catch(NumberFormatException nfe) { }; //word is not an integer, do nothing
         }
      } //end while

      if(!foundInts)
         System.out.println("No numbers found.");
      else
         System.out.println("Total: " + total);

      // close the scanner
      scan.close();
   }


 类似资料:
  • 所以,我试图让我的程序从文本文件中读入一个结构数组,它编译得很好,但看起来并没有真正读入值?...我不知道为什么。这是代码的相关部分: 这是txt文件(标题:Planets.txt) 水星120 50 500 12.1 30 2金星120 50 500 29.1 30 6地球120 50 500 32.2 30 7月亮120 15 50 5.3 30 2火星120 50 500 12.2 30 4

  • 我正在编写一个程序,使用一个文件中的30个分数,计算出最低、最高和平均分数。我很难理解如何编写循环语句来读取每个等级并更新最低/最高等级,并在读取下一个等级之前将该值添加到总和。 谢谢想出来了:

  • 我希望有人会花时间帮助我。我是Java新手,正在上一堂课尝试学习它。我有一个任务,我已经开始和删除了可能30次。我就是不喜欢这个。作业如下: 从txt文件中读取3列整数。一列有学生号,一列是作业的分数,第三列是作业的最大可能分数。(各10分学生5人)。 我必须至少使用1个数组。 列出从作业中获得的总分数,并合计5名学生在10项作业中每个人可能获得的最高分数。然后将学生号、分数、作业的最大可能分数、

  • 我有一个csv文件,标题在第一行,其值在所有石灰中。 标题应该是:标题1,标题2,标题3,。。。。 如果总共有200行,我将得到199个header1,header2值。 我试图将每个标头的所有值存储在一个数组中。 我试过的代码, 这样做的时候,我每行得到200个阵列。 如果假设有七个标头,我需要七个包含199个元素的数组。 顺便说一句,我不需要所有的标题值,我只需要一些标题,我可以通过拆分第一行

  • 我已经创建了一个JFrame,里面有一个JTable,我可以在单元格上写信息。我可以单击Save JMenuItem Save并将信息写入txt文件。然而,当我试图读取文件并将其返回到表中时,我面临三个问题。 JTable由30行组成。当代码读取txt文件时,在第30行下面添加行。是否有办法从第一行而不是第31行开始填充输入?--已解决 数据写入不正确。所有这些都写在第一列——已解决 如何去掉“n

  • 我一直在互联网上寻找帮助,但我找不到,所以我求助于发帖。 我有一个txt文件,格式如下 1/2 0 1/6 6/11 1/6 2/10 我需要读取这些单独的分数,并输入分子和分母的函数称为BigFraction(num,denom)。 我调用读取器并将其作为字符串输出。然后,我在空格上进行拆分,以获得作为字符串的各个分数,并将它们输入到我的助手方法strToBF中,该方法在正斜杠上进行拆分,并输入