长话短说,gameplayWord 是从一个刽子手游戏的单词列表中随机确定的一个单词(在本例中是简单的单词文件)。easyContentList 是该文件中所有数据的 ArrayList。该文件有 2 列,第一个 col - 可以使用的单词,第二个 - 表示该单词使用次数的数字。(初始文件中的 0)我需要根据游戏的每次迭代来跟踪这个数字。easyFileUpdateList 是在类级别声明的 String ArrayList。问题是这基本上不起作用:
public void updateEasyFile(String gameplayWord, ArrayList<String> easyContentList) {
Integer used = 0; // represents used word count
String strUsed = "";
for (int i = 0; i < easyContentList.size() - 1; i++) {
String oneLine;
oneLine = easyContentList.get(i);
tokenizer = new StringTokenizer(oneLine);
String firstToken = tokenizer.nextToken();
if (firstToken.equals(gameplayWord)) {
used = Integer.parseInt(tokenizer.nextToken());
used++;
strUsed = used.toString();
easyFileUpdateList.add(gameplayWord + " " + strUsed + " " + "TODO");
}
if (!firstToken.equals(tokenizer.nextToken())) // add the first token of every line except the first
easyFileUpdateList.add(oneLine);
}
try {
PrintWriter printWriter = new PrintWriter(new FileOutputStream(new File("hmeasy.txt")));
for (String oneLine : easyFileUpdateList) {
printWriter.println(oneLine);
}
printWriter.close();
}
catch (FileNotFoundException fnfe) {
fnfe.printStackTrace();
}
}
更新
谢谢,我会研究哈希集。让我再澄清一点,我仍然没有完全遵循。
正确,文件将如您所说,因此如果单词是狗、猫和雾,文件将如下所示:
dog 0
cat 0
fog 0
第三列是零,这就是 TODO 的用途,但我稍后会担心。
你是对的,我遇到的问题是它只是在第二列中添加一个带有单词的新条目,然后是 1。因此,如果连续 3 次随机选择雾并执行此方法,它会说
dog 0
cat 0
fog 1
dog 0
cat 0
fog 1
fog 1
dog 0
cat 0
fog 1
fog 1
fog 1
我正在寻找的是:第一轮:
dog 0
cat 0
fog 1
第二轮:
dog 0
cat 0
fog 2
ETC...
每次随机选择单词时,我都需要更新文件中的数字。