0

私は単純な SRMS を作成しています。ユーザーからの入力がフィールド (電子メール フィールドや電話フィールドなど) に応じた基準に一致するかどうかを検証する必要があります。このアプリは機能付きの電話で実行するため、テスト用に仮想マシンで Java ME SDK を使用しています。

そうするための最良の方法は何ですか、入力を検証する最良の方法は何ですか、入力がいくつかの基準を満たしていない場合は、ユーザーに通知するか、入力した値をnull再度設定する必要があります。

public void name() {
    boolean nameValid = false;
    display = Display.getDisplay(this);
    nameForm = new Form("Student Record Management (1/4");
    TextField firstName = new TextField("First Name(s)", "", 20, TextField.ANY);
    TextField lastName = new TextField("Last Name", "", 20, TextField.ANY);
    TextField personNumber = new TextField("Person Number", "", 10, TextField.NUMERIC);
    back = new Command("BACK", Command.BACK, 1);
    next = new Command("Continue", Command.ITEM, 2);

    nameForm.append(firstName);
    nameForm.append(lastName);
    nameForm.append(personNumber);
    nameForm.addCommand(back);
    nameForm.addCommand(next);
    nameForm.setItemStateListener(this);
    nameForm.setCommandListener(this);
    display.setCurrent(nameForm);

    if (firstName.toString().length() > 0) {
        nameValid = true;
    }
}

コードを開始した人は、 と を実装しましCommandListenerItestStateListener

itemStateChanged(Item item)私は2番目のものは何をしているのか分かりません。それには、ここで変更をチェックして検証することになっていると呼ばれる抽象メソッドがありますか?

4

2 に答える 2

1
public static boolean validateEmailID(String email) {
email = email.trim();
String reverse = new StringBuffer(email).reverse().toString();
if (email == null || email.length() == 0 || email.indexOf("@") == -1) {
    return false;
}
int emailLength = email.length();
int atPosition = email.indexOf("@");
int atDot = reverse.indexOf(".");

String beforeAt = email.substring(0, atPosition);
String afterAt = email.substring(atPosition + 1, emailLength);

if (beforeAt.length() == 0 || afterAt.length() == 0) {
    return false;
}
for (int i = 0; email.length() - 1 > i; i++) {
    char i1 = email.charAt(i);
    char i2 = email.charAt(i + 1);
    if (i1 == '.' && i2 == '.') {
        return false;
    }
}
if (email.charAt(atPosition - 1) == '.' || email.charAt(0) == '.' || email.charAt(atPosition + 1) == '.' || afterAt.indexOf("@") != -1 || atDot < 2) {
    return false;
}

return true;

}

于 2013-07-25T11:15:35.060 に答える