0

我正在尝试创建一个函数来检查一个级别是否保存在 SQLite 数据库中。如果是,并且新分数大于表中的分数,那么我想对其进行编辑。我创建了一个似乎工作正常的编辑函数和一个添加到数据库的函数,该函数在被检查的级别不存在时调用。

这是我的功能

    void isHighScore(String level, int score) {
    List<String> scores = getHighScore();
    List<String> levels = getHighScoreLevel();

    for (int i = 0; i < levels.size(); i++) {

        int scoreVal = Integer.parseInt(scores.get(i));
        String levelVal = levels.get(i).toString();

        if (levelVal == level && scoreVal < score) {
            try {
                editScore(level, score);
            } catch (Exception e) {}
        }
    }
    if (!levels.contains(level)) {
        createHighScoreEntry(level, score);
    }
}

到目前为止,只有创建入口函数在工作,所以我的主要问题在于 for 循环。任何帮助将不胜感激。

4

1 回答 1

0

您不应该使用 == 来比较字符串,因为它不会检查字符串是否实际上相等。您应该使用的是 String.equals() 或 String.compare() 或 String.contains()

String.equals() 检查它们是否相等。如果是这样,它返回 true

String.compare() 检查它们是否相等。如果是,则返回 0,否则返回 -1 或 1,具体取决于差异。

String.contains() 更通用,它会检查字符串中是否包含单词、字符或短语,如果它返回 true。

您可以使用此站点作为每个站点的参考 http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html

于 2013-02-09T16:14:16.900 回答