2012-04-24 53 views
0

我想搜索一個數組,如果兩個字符串匹配,那麼它將返回true否則爲false,首先我想搜索以查看帳戶是否已經存在,如果是的話搜索Code if兩個exsis然後返回true新用戶與搜索陣列舉行

public boolean searchArray(String account, String code) {  
    for (Accounts a : bAccounts) { 
     if (a.getAccount().equals(account)) { 
      for (Accounts c : bAccounts) { 
       if (c.getCode().equals(Code)) 
        return true; 
       } 
      } 
     } 

    return false; 
} 

想想我有一點點這種搜索方法中丟失,任何人都可以請幫我在這,謝謝。這一切都編譯好,但似乎沒有任何回報。我已經在我的Accounts類中獲得了方法,該類已獲取並設置Account和Sort方法。

+1

非常混亂的名字。變量名不應該大寫,類型名稱是單數,而不是複數。另外,兩個字符串是否應該匹配單個對象或任何一對對象? – Tudor 2012-04-24 15:23:02

回答

1
public boolean searchArray(String account, String code) {  
    for (Accounts a : bAccounts) { 
     if (a.getAccount().equals(account) 
        && a.getCode().equals(code)) {     
      return true;      
     } 
    } 

    return false; 
} 

內部爲應被刪除。

+0

這總是返回false – 2012-04-24 15:53:56

+0

然後它不是搜索的問題,而是您的數據。 – 2012-04-24 18:30:55

0

您沒有提及您是否接受用於帳戶和代碼參數的空值。

如果空值是可能的/可取的比較,這是我的建議:

public boolean searchArray(String account, String code) { 

    for (Account a : accounts) { 
     if (account == null) { 
      if (code == null) { 
       if ((a.getAccount() == null) && (a.getCode() == null)) { 
        return true; 
       } 
      } else { 
       if ((a.getAccount() == null) && code.equals(a.getCode())) { 
        return true; 
       } 
      } 
     } else { 
      if (code == null) { 
       if (account.equals(a.getAccount()) && (a.getCode() == null)) { 
        return true; 
       } 
      } else { 
       if (account.equals(a.getAccount()) && code.equals(a.getCode())) { 
        return true; 
       } 
      } 
     } 
    } 

    return false; 
} 

如果你不考慮空帳戶和密碼參數,我的建議是:

public boolean searchArray(String account, String code) { 
    // if you won't consider nulls then there's no need to search 
    // when at least one of them is null 
    if ((account == null) || (code == null)) { 
     return false; 
    } 

    for (Account a : accounts) { 
     if (account.equals(a.getAccount()) && code.equals(a.getCode())) { 
      return true; 
     } 
    } 

    return false; 
} 

希望它可以幫助你

+0

我使用這個比較來查看當一個新賬戶被添加到賬戶時是否有一個對象存在與thoose相同的細節,它永遠不會被傳遞空值,因爲我有在處理入口時處理空字段的處理程序,但是甚至這在每個實例中都返回null。我已經打印出正在傳遞的內容,並且正在打印出有效的帳戶和代碼,但它只是連續地返回false。 – 2012-04-24 16:10:23