0

这是我的第一次,所以我会尽量添加尽可能多的信息,这样我就不会被骂了。:-)

我想要做的是我有 2 个变量,它们从 2 个字段中获取文本,并且只从每个字段中获取第一个字符并将其分配给这些值。

这是我用来获取字符串的代码。就像您一样,它们是两个单独的电话。

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

我再次使用不同的变量进行上述操作。现在到这一点,它做了我想要的。它从字段中获取第一个字母并将其分配给变量。

所以此时我有两个变量(比如 D 和 R 的示例字符)。

var_ContactSurname = R var_ContactLicenceNumber = D

我想要做的是比较这两个变量,如果它们匹配,我想返回一个 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. 要将值分配给字段,请使用 single =,而不是 double ( ==)。
于 2012-08-21T13:48:38.920 回答
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 回答
1

将您的整段代码更改为:

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

这结合了您想要的不区分大小写,并通过第二个字符串作为 .equalsIgnoreCase 函数的参数。

另外,我不确定你想用这条线做什么: var_ContactValidate == "TRUE";

如果要将 var_ContactValidate 分配给“TRUE”,则使用单个等号 '=' 作为双等号 '==' 来比较值。在这种情况下,您也可以考虑使用布尔值而不是字符串。

于 2012-08-21T13:54:03.760 回答
0

这是一个还检查空值和空字符串的实现:

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 回答