当前位置: 首页 > 知识库问答 >
问题:

存储和使用逐行读取的数据

班浩皛
2023-03-14

如果我要[按顺序]读取一个文件,其中包含两个团队以及他们每行的分数,例如:

黑豹3骑士5

火箭4泰坦9

天线8 Yahoos 6

黑豹10泰坦3

雅虎4火箭7

我需要想办法跟踪每支球队及其输赢,并将它们打印到新文件中。例如:

团队胜负

黑豹 1 1

火箭0 2

我面临的问题是,我不知道如何存储球队的名称,以便我能够在PrintWriter读取数据时将输赢添加到该球队。任何输入都将不胜感激,并提供解释…这是我到目前为止所拥有的。

import java.util.*; 
import java.io.*;
public class SoccerLeague
{
    public static void main(String[]args) throws IOException
    {
        File inputFile= new File("SoccerNotSorted.txt");
        Scanner input = new Scanner(inputFile);
        if(!inputFile.exists())
        {
            System.out.println("File not found");
            System.exit(0);
        }
        File outputFile= new File("SoccerSort.txt");
        PrintWriter output= new PrintWriter(outputFile);
        if (!outputFile.exists())
        {
            System.out.println("output file not found");
            System.exit(0);
        }
        while(input.hasNext())//This is where i attempted to solve the prob.
        {

            //String team1 = input.next();
            //int score1 = input.nextInt();
            //String team2= input.next();
            //int score2=input.nextInt();
            //int wins=0;
            //if(score1>score2)
            //{
            //  output.println(team1+"wins against"+team2);
            //} 
            //else()



        }
        input.close();
        output.close();

    }
}

共有2个答案

西门凯康
2023-03-14
List<Team> allTeams = new ArrayList<Team>();
while (scanner.hasNextLine()){
    // "Panthers 3 Cavaliers 5", for example
    String teamString = scanner.nextLine();
    String[4] teamComponents = teamString.split(" ");
    Team team1 = new Team();
    team1.setName(teamComponents[0]); // sets team1 name to Panthers
    team1.setScore(Integer.valueOf(teamComponents[1]); // sets team1 score to 3
    Team team2 = new Team();
    team2.setName(teamComponents[2]); // sets team2 name to Cavaliers
    team2.setScore(Integer.valueOf(teamComponents[3]); // sets team2 score to 5
    allTeams.add(team1);
    allTeams.add(team2); // now you can access all of the Team objects created in the while loop outside of the loop, 
    // since the List was instantiated before iterating through all of the lines in your input file
} 

到循环结束时,您的列表应该有10个团队对象。请记住,名称team1和team2是任意的,并且只在循环内部重要-循环外部的List对象对循环内部的变量名称一无所知。

法兴德
2023-03-14

您可能希望查看地图以将字符串与另一段数据相关联,例如运行的总赢/输。:-)

 类似资料:
  • 我们在游戏中通常需要存储用户数据,如音乐开关、显示语言等,如果是单机游戏还需要存储玩家存档。 Cocos Creator 中我们使用 cc.sys.localStorage 接口来进行用户数据存储和读取的操作。 cc.sys.localStorage 接口是按照 Web Storage API 来实现的,在 Web 平台运行时会直接调用 Web Storage API,在原生平台上会调用 sqli

  • 到目前为止,我们介绍了如何处理数据以及如何构建、训练和测试深度学习模型。然而在实际中,我们有时需要把训练好的模型部署到很多不同的设备。在这种情况下,我们可以把内存中训练好的模型参数存储在硬盘上供后续读取使用。 读写NDArray 我们可以直接使用save函数和load函数分别存储和读取NDArray。下面的例子创建了NDArray变量x,并将其存在文件名同为x的文件里。 from mxnet im

  • 问题内容: 如何使用fseek逐行读取文件? 代码可能会有所帮助。必须是跨平台和纯PHP。 提前谢谢了 问题答案: 问题是使用fseek进行询问,因此只能假定性能是一个问题,而file()不是解决方案。这是使用fseek的一种简单方法: 我的file.txt 和代码: 输出: 您不必像我一样附加到$ lines数组,如果这是脚本的目的,则可以立即打印输出。如果要限制行数,也很容易引入计数器。

  • 问题内容: 我有一个.gz格式的文件。读取此文件的Java类是GZIPInputStream。但是,此类不会扩展Java的BufferedReader类。结果,我无法逐行读取文件。我需要这样的东西 尽管我创建了扩展java的Reader或BufferedReader类并使用GZIPInputStream作为其变量之一的类。 但是,这在我使用时不起作用 有人可以建议如何进行.. 问题答案: 装饰器的

  • 稳定性: 2 - 稳定的 require('readline') 模块提供了一个接口,用于从可读流(如 process.stdin)读取数据,每次读取一行。 它可以通过以下方式使用: const readline = require('readline'); 例子,readline 模块的基本用法: const readline = require('readline'); const rl

  • 我正试图通过(伪)串行连接使用处理从Arduino读取100个传感器数据条目。我使用的加工草图如下: 不幸的是,通常我的data.txt文件中存储的条目不到100个,其中一些条目(大约3-5个)在其中显示换行符。我做错了什么?Arduino IDE的串行监视器未打开!