[英]Java if else on partial match
我已经进入Selenium WebDriver,并且仍然找到最令人困惑的示例。
我需要能够读取一个字符串(成功),并运行一个条件查询,询问是否存在特定的文本。
为了本文的缘故。
String oneoff = "Jeff is old"
我需要匹配Jeff,请参见下面的代码,只要Jeff存在于字符串中,我就想返回true。 如果杰夫不存在,那么我会检查哦,说50-75个其他名字。 但是,字符串可能包含其名称和其他无法控制的文本。 所以我必须做部分比赛。
问题1.我是否搞砸了,是否必须以我见过的那种疯狂格式构建每个正则表达式,还是我遗漏了一些明显的东西?
问题2。请问有人出于我的理智,请告诉我匹配Jeff的正确方法,文字可能在Jeff的名字之前和之后。
谢谢!
String oneoff = driver.findElement(By.id("id_one_off_byline"))
.getAttribute("value");
System.out.println("One Off is:" + oneoff);
if (oneoff.matches("Jeff")) {
System.out.println("It is Jeff");
} else {
System.out.println("it is not jeff");
}
这只是代码的功能部分,
因为Jeff存在于字符串中,所以我想返回true
那你可能应该用
if (oneoff.contains("Jeff"))
由于matches
使用正则表达式作为参数,因此if (oneoff.matches("Jeff"))
仅在oneoff = "Jeff"
时才返回true。
您无需为提供的代码使用match()。 而是使用oneoff.equals(“ String”)进行字符串匹配。 Match()更适合于正则表达式。 如果您想返回true,即使该字符串仅作为目标字符串的子集存在,也可以使用oneoff.contains(“ String”)。
if (oneoff.contains("Jeff")) {
System.out.println("It is Jeff");
} else if (!oneoff.contains("Jeff")) {
System.out.println("it is not jeff");
}
我认为您应该改进代码,因为如果其他“ jeff”(例如“ JEef”或“ JEEF”或什至“ Jeef”)中包含Java,则Java可能无法识别其他字符串
我希望它能起作用,我曾经发现过像您一样的错误,然后尝试通过这种方式来克服它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.