java - 如何处理Pattern.compile中的null?

标签 java design-patterns

使用Pattern.compile时如何处理null?我使用以下行来比较字符串:

Pattern.compile(Pattern.quote(s2), Pattern.CASE_INSENSITIVE).matcher(s1).find()

在某些情况下,s1 可能为 null,并且显然它会抛出 NullPointerException。我知道这可以通过 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;
    }
}

s1s3 是通过迭代器匹配的输入。

最佳答案

你必须检查是否为空;例如,

if(s1 != null && Pattern.compile(Pattern.quote(s2), Pattern.CASE_INSENSITIVE).matcher(s1).find()))

关于java - 如何处理Pattern.compile中的null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6187176/

相关文章:

java - 奇怪的 jsp 输出 - 应用程序在 eclipse 下工作,但不直接在 tomcat 下工作

java - gradle守护进程的高内存使用率

json - REST API - 包含相关的对象详细信息或仅包含 ID

c++ - 单例模板设计问题

spring - 如何在AOP中实现策略模式

java - 如何使用 Lucene 存储值对

java - 强制方法在指定的时间间隔内运行

c++ - 使用原型(prototype)模式动态配置应用程序

c# - 工厂返回界面

java - 将 log4j 添加到类路径并仍然得到 java.lang.NoClassDefFoundError