0

我正在尝试搜索一个数组,如果两个字符串匹配,那么它将返回true,否则返回false,首先我想搜索该帐户是否已经存在,如果存在则搜索代码,如果两个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 类中有 get 方法,它具有 Account 和 Sort 的 get 和 set 方法。

4

2 回答 2

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;
}

内部 for 应该被移除。

于 2012-04-24T15:26:04.583 回答
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;
}

希望对你有帮助

于 2012-04-24T16:06:22.400 回答