0

これは私の最初なので、怒鳴られないようにできるだけ多くの情報を追加しようとします. :-)

私がやろうとしているのは、2 つのフィールドからテキストを取得し、それぞれの最初の文字だけを取得してそれらの値に割り当てる 2 つの変数があることです。

これは、文字列を取得するために使用するコードです。あなたがするように、それらは2つの別々の呼び出しです。

try { var_ContactSurname = var_ContactSurname.substring(0,1);
    }
catch (Exception e){
}

私は別の変数を使って上記を再び持っています。今のところ、それは私が望むことをしています。フィールドから最初の文字を取得し、変数に割り当てます。

したがって、この時点で、2 つの変数があります (D と R の文字の例を使用するとします)。

var_ContactSurname = R var_ContactLicenceNumber = D

私がやりたいのは、これら 2 つの変数を比較して、一致する場合は TRUE の値を返し、一致しない場合は FALSE を返すことです。

その値も文字列である必要があり、var_ContactValidate という新しい変数に割り当てる必要があります。

if (var_ContactLicenceNumber.toLowerCase().equals()var_ContactSurname.toLowerCase()){
var_ContactValidate == "TRUE";
}
else {
var_ContactValidate == "FALSE";
}

いいえ、一部のコードが欠落している可能性があることに気付くかもしれません。多くの機能を実行するルール エンジンを使用しています。生のJavaコードを使用して他のことを行うことができます(この比較など)...しかし、それは私が問題を抱えている比較です。

その比較のためのアイデアは大歓迎です。

ありがとう。

4

5 に答える 5

5
  1. 私はそのString方法を使用しますequalsIgnoreCase()
  2. =フィールドに値を割り当てるには、二重 ( ) ではなく単一の を使用します==
于 2012-08-21T13:48:38.920 に答える
1

コード全体を次のように変更します。

if (var_ContactLicenceNumber.equalsIgnoreCase(var_ContactSurname)){
var_ContactValidate == "TRUE";
}
else {
var_ContactValidate == "FALSE";
}

これにより、必要な大文字と小文字の区別がなくなり、2 番目の文字列が .equalsIgnoreCase 関数の引数として渡されます。

また、次の行で何をしようとしているのかわかりません。 var_ContactValidate == "TRUE";

var_ContactValidate を "TRUE" に割り当てたい場合は、単一の等号 '=' を使用します。二重の等号 '==' は代わりに値を比較します。この場合、文字列ではなくブール値の使用を検討することもできます。

于 2012-08-21T13:54:03.760 に答える
1
if (var_ContactLicenceNumber.equalsIgnoreCase(var_ContactSurname){
var_ContactValidate = "TRUE";
}
else {
var_ContactValidate = "FALSE";
}

確認してください

于 2012-08-21T13:49:55.633 に答える
1

すでに述べたことに加えて、よりシンプルでエレガントなバージョン (if条件なし) は次のようになります。

var_ContactValidate = Boolean.toString(
     var_ContactLicenceNumber.equalsIgnoreCase(var_ContactSurname))
    .toUpperCase();
于 2012-08-21T13:52:36.890 に答える
0

null 値と空の文字列もチェックする実装を次に示します。

public class SurnameAndLicenseValidator {
    public static void main(String[] args) {

        // FALSE
        validateSurnameAndLicense(null, "jb78hq");
        validateSurnameAndLicense("Johnson", null);
        validateSurnameAndLicense(null, null);
        validateSurnameAndLicense("", "jb78hq");
        validateSurnameAndLicense("Johnson", "");
        validateSurnameAndLicense("", "");
        validateSurnameAndLicense("johnson", "xb78hq");

        // TRUE
        validateSurnameAndLicense("Johnson", "jb78hq");
        validateSurnameAndLicense("johnson", "jb78hq");
    }

    private static String validateSurnameAndLicense(String surname,
            String license) {
        String result;
        if (surname != null
                && surname.length() > 0
                && license != null
                && license.length() > 0
                && Character.toUpperCase(surname.charAt(0)) == Character
                        .toUpperCase(license.charAt(0))) {
            result = "TRUE";
        } else {
            result = "FALSE";
        }
        System.out.println(surname + " " + license + " " + result);
        return result;
    }
}

ここでは、main メソッドを単体テストとして使用します。そのようなことに興味がある場合は、そこから実際の JUnit テストを抽出したいと思うかもしれません。

于 2012-08-21T14:37:30.123 に答える