0

00 と 99 で始まる番号を拒否する関数を開発します。

public Boolean valideCode(EditText code_postal){

    String number =     code_postal.getText().toString();

    if (number.charAt(0)==00){


    }

    return false;

}

この機能を適切に実装するにはどうすればよいですか。

4

7 に答える 7

3

使用.startsWith():

if (number.startsWith("00") || number.startsWith("99")) ...

.charAt()文字列ではなく、単一の文字を返します。

(純粋な好奇心から、なぜこれなのですか?code_postal.getText().toString();の名前から、既に... Bah.getText()を返していることがわかります。)String

編集したがって、オンデマンドで、最初に int に変換してチェックする別のバージョン...

final int begin = Integer.parseInt(number.subString(0, 2));
if (begin % 99 == 0) // can only be true if number is 0 or 99
    // etc
于 2013-06-07T07:03:24.727 に答える
3

if ステートメントは常に false を返します。

1 つの解決策:

if (number.trim().startsWith("00") || number.trim().startsWith("99")){
  System.out.println("not valid");
}
于 2013-06-07T07:04:18.147 に答える
2

StringクラスindexOf()メソッドを使用できます。

if (number.indexOf("00")==0 || number.indexOf("99")==0)

編集済み: -質問の件名「最初の 2 桁の数字が 00 && 99 の間にあることを確認してください」から理解したように、これが必要です。

public static boolean isValid(String name) {
    boolean isValid = true;
    if(name.length()>2){
        name = name.substring(0, 2);
    }
    try {
        int number = Integer.parseInt(name);
        if(number>-1 || number<100){
            isValid = false;
        }
    }
    catch(Exception e){
        isValid = false;
    }
    return isValid;
}
于 2013-06-07T07:03:34.533 に答える
2

あなたの質問が「00と99の間にある」という特別な見出しを理解している場合、これが必要です

    try
    {
       String s = "45Abc";
       Integer i = Integer.parseInt(s.substring(0,2));
        if (i>00 && i<99)
            System.out.println("True");

    }catch (NumberFormatException e)
    {
        // TODO Auto-generated catch block
        System.out.println("First two characters are not numbers");
    }
于 2013-06-07T07:12:05.487 に答える
2

以下のようなロジックを使用してください

private boolean isValid(String str) {
        if (str == null)
            return false; 

        String tempStr = null;
        try {
            if (str.length() > 2) {
                tempStr = str.substring(0, 2);
            } else {
                tempStr = str; 
            }

            int number = Integer.parseInt(tempStr);
            if (number >= 0 && number <= 99) {
                return false; //in between 0 to 99
            } else {
                return true;
            }
        } catch (NumberFormatException e) {

        }
        return false;
    }
于 2013-06-07T07:12:24.383 に答える
1

入力した数字が「00」か「99」かを確認するには

 public Boolean valideCode(EditText code_postal){

    String number = code_postal.getText().toString();

    if(number.startsWith("00") || number.startsWith("99")){
        return true;
    }
    return false;
}

入力した数字が「00」~「99」かどうかを確認するには

public Boolean valideCode(EditText code_postal){

    String number = code_postal.getText().toString();
    String firstTwoDigits = number.substring(0,2);

    if (Integer.valueOf(firstTwoDigits )>=0 && Integer.valueOf(firstTwoDigits )<=99){
        return true;
    }
    return false;
}

注:質問のタイトルと説明が異なります。したがって、2つの答え。

于 2013-06-07T07:06:39.497 に答える