1

arraylist をループして、無効な電子メール アドレスを出力しようとしています。無効にするには、アドレスに @ 記号またはピリオドが含まれていません。

エラーが発生しました。メソッドの int を charsequence に変換できません。

public static void print_invalid_emails(){
    for (int i = 0; i < studentList.size(); i++) {
        if (studentList.get(i).getEmail().contains('@' + '.')){
            System.out.println("Scanning Roster");
        }
        else {
            System.out.println("Invalid email address, " + studentList.get(i).getEmail());

        }
    }
}
4

2 に答える 2

2

問題は、Java が'@' + '.'文字列の連結としてではなく、2 つの文字の追加として扱うことです。この加算の結果は、 の UNICODE コード ポイントに の@Unicode コード ポイントを加えたもので.、 として表されますint

項目に a.または aがないことを確認する@場合は、これら 2 つの確認を の 2 回の呼び出しで実行する必要があります。contains(...)

于 2016-02-14T22:29:57.653 に答える
1

バグはここにあります:

if (studentList.get(i).getEmail().contains('@' + '.')){

そのはず:

if (studentList.get(i).getEmail().contains("@") || studentList.get(i).getEmail().contains(".")){
于 2016-02-14T22:29:51.313 に答える