1

ねえ、私は学校のプロジェクトをやっています。仮想 ATM マシンをコーディングする必要があります。学生メールでログインする必要があります。

私の質問は: ドット (.) の後の文字の長さを制限するにはどうすればよいですか?

public boolean validUsername(String username) {
        Boolean oneAT = false;
        for (int i=0; i < username.length(); i++) {
            if (username.contains("@") && username.contains(".") &&{
                oneAT = true;
            }
        }

        return oneAT;
    }

この関数は、入力されたユーザー名に @ と .(ドット) が含まれているかどうかをチェックします。ドットの後の文字の長さを 3 に制限する方法はありますか? それ以外の場合、ユーザーは johndoe@johndoemail.tugfksdoew と書くことができます。

4

3 に答える 3

2

正規表現を使用してユーザー名を検証する方が簡単です

public boolean validUsername(String username) {
    Pattern pattern = Pattern.compile("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
    Matcher matcher = pattern.matcher(username);
    return matcher.matches();
}

この式は、ユーザー名が有効な電子メール アドレスであるかどうかを検証し、有効な場合は true を返します。

于 2014-11-26T20:32:13.647 に答える
0

これは役立つはずです:

if (username.contains("@") && username.contains(".") && ((username.length() - username.lastIndexOf(".") <= 3)) {

基本的に、文字列の長さと最後に出現したドットの差が 3 以下かどうかをチェックします。これにより、john.doe@yahoo.com などの電子メールも処理されます。

于 2014-11-26T20:38:48.370 に答える
0

特定の質問に答えるには、ドットの後の部分文字列のサイズを確認してサイズを制限できます (文字列にドットしかないと仮定します)。

afterDot = username.substring(username.indexOf("."))

ただし、ZouZou が述べているように、電子メール アドレスを適切に検証する必要があります (他にも確認すべき点がいくつかあります)。ここで例を見てみましょう: http://examples.javacodegeeks.com/core-java/util/regex/matcher/validate-email-address-with-java-regular-expression-example/

于 2014-11-26T20:33:16.893 に答える