gpt4 book ai didi

java - 设置数组列表格式

转载 作者:太空宇宙 更新时间:2023-11-04 07:23:38 24 4
gpt4 key购买 nike

我有一个文件正在存储到 ArrayList 中,但我不知道如何格式化它,以便将某些文本字符串存储在特定索引中。第一行是类别,第二行是问题,第三行是琐事问题的答案。我需要这样做,以便我可以随机选择问题,然后检查问答游戏的答案。到目前为止我所得到的只是每个单词都用逗号分隔。来自教授,

“输入文件包含不同类别的问题和答案。对于每个类别,第一行表示类别的名称。该行后面会跟随许多对行。对的第一行是问题,第二行是其对应的答案。类别之间用空行分隔。”

这是迄今为止我的代码:

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
import javax.swing.JOptionPane;



public class TriviaGamePlayer {

/**
* @param args
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub

ArrayList<String> triviaQuestion = new ArrayList<String>();

Scanner infile = new Scanner(new File("trivia.txt"));



while(infile.hasNext()){

triviaQuestion.add(infile.next());
}


System.out.println(triviaQuestion);
}


}

最佳答案

从到目前为止我在问题中看到的情况来看,您最好创建自己的 TriviaQuestion对象看起来像

public class TriviaQuestion
{
public String question;
public String answer;
public boolean asked;
public String category;

TriviaQuestion (String q, String a, String c)
{
question = q;
answer = a;
category = c;
}
}

然后你有几个选择,但如果你有这个对象,那么一切都会变得容易一些。我会创建一个 Map<String,List<TriviaQuestion>>其中关键是您的类别。

那么在读取文件时,也应该使用 infile.hasNextLine() inFile.nextLine()

  1. 读一行(我认为首先是类别)
  2. 阅读接下来的两行(问题和答案)
    • 创建新实例“new TriviaQuestion(问题、答案、类别)”
    • 将其添加到数组列表
    • 重复直到空白
  3. 如果下一行为空,则将列表添加到映射并循环回 (1)

像:(假设文件格式良好)

String line = inFile.nextLine();  //first line
String category = line;
while(infile.hasNextLine())
{
line = inFile.nextLine();
if(line.isEmpty()) //blank line
category = inFile.nextLine();
else
{
String q = line;
String a = inFile.nextLine();
//do other stuff
}
}

然后要提出问题,请获取该类别的列表,选择一个随机问题,然后将其设置为已询问,这样就不会再次出现

ArrayList<TriviaQuestion> questions = yourMap.get("Science");
Integer aRandomNumber = 23 //(create a random Number using list size)
TriviaQuestion questionToAsk = questions.get(aRandomNumber)
System.out.println(questionToAsk.question)
questionToAsk.asked = true

关于java - 设置数组列表格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18908186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com