如何在使用pattern.compile时处理NULL?我正在使用以下行来比较字符串
if(Pattern.compile(Pattern.quote(s2), Pattern.CASE_INSENSITIVE).matcher(s1).find())
在某些情况下,s1可能为NULL,显然它会抛出Null指针Exception。我知道这可以通过s1的另一个“if”条件来处理。但我想知道其他任何替代解决方案吗?
修改
Iterator iter = sampleList().iterator();
while (iter.hasNext()) {
SampleObj so = (SampleObj) iter.next();
if (!s1.equalsIgnoreCase("")) {
if (Pattern.compile(Pattern.quote(s1), Pattern.CASE_INSENSITIVE).matcher(so.getS1()).find())
match = true;
else
match = false;
}
if (!s3.equalsIgnoreCase("")) {
if (Pattern.compile(Pattern.quote(s3), Pattern.CASE_INSENSITIVE).matcher(so.getS3()).find())
match = true;
else
match = false;
}
}
S1和S3是通过迭代器匹配的输入。
答案 0 :(得分:7)
你必须检查null;例如,
if(s1 != null && Pattern.compile(Pattern.quote(s2), Pattern.CASE_INSENSITIVE).matcher(s1).find()))
答案 1 :(得分:4)
Pattern.matcher()
时, NullPointerException
将始终抛出null
,因此:不,没有其他办法,您必须明确检查null
答案 2 :(得分:0)
我使用
String.valueOf(s1)
这将导致结果为“ null”而不是null。