2013-02-09 60 views
0

我想創建一個函數來檢查一個級別是否在SQLite數據庫中。如果是,並且新分數大於表中的分數,那麼我想編輯它。我創建了一個編輯函數,它似乎可以正常工作,並且在被檢查的級別不存在時調用數據庫函數。如何比較列表中的值與java中的參數?

這裏是我的功能

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循環。任何幫助將不勝感激。

+0

什麼是不工作的參考?有拋出異常嗎? – Simon 2013-02-09 16:12:31

+0

看看這個: - [如何比較字符串](http://stackoverflow.com/q/513832/1679863) – 2013-02-09 16:13:44

+0

是分數和級別列表總是在相同的大小?如果不訪問scores.get(i)可以得到一個空指針異常 – Nimrod007 2013-02-09 16:15:56

回答

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

相關問題