Java - 比较两个字符串并将值赋给第三个变量?

时间:2012-08-21 13:42:33

标签: java string variables compare

这是我的第一次,所以我会尝试添加尽可能多的信息,所以我不会被大吼大叫。 : - )

我想要做的是我有2个变量从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代码来做其他事情(比如这个比较)......但那是我遇到问题的比较。

非常感谢任何有关比较的想法。

感谢。

5 个答案:

答案 0 :(得分:5)

  1. 我会使用String方法equalsIgnoreCase()
  2. 要为字段指定值,请使用单个=,而不是双倍(==)。

答案 1 :(得分:1)

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

检查

答案 2 :(得分:1)

除了已经说过的内容之外 - 一个更简单的&更优雅的版本(没有if条件)可能是:

var_ContactValidate = Boolean.toString(
     var_ContactLicenceNumber.equalsIgnoreCase(var_ContactSurname))
    .toUpperCase();

答案 3 :(得分:1)

将您的整段代码更改为:

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

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

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

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

答案 4 :(得分: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;
    }
}

主要方法在此用作单元测试。如果您涉及到这种情况,您可能希望从中提取真正的JUnit测试。