这是我的第一次,所以我会尝试添加尽可能多的信息,所以我不会被大吼大叫。 : - )
我想要做的是我有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代码来做其他事情(比如这个比较)......但那是我遇到问题的比较。
非常感谢任何有关比较的想法。
感谢。
答案 0 :(得分:5)
String
方法equalsIgnoreCase()
=
,而不是双倍(==
)。 答案 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测试。