java - 如何在两个数组中查找字符串之间的匹配项 - java

标签 java arrays

我有两个包含一些字符串的数组,如下所示:

数组#1

abcd                    
efgh            
servicegroup_1
ijkl 

数组#2

servicegroup_3
servicegroup_1

我想打印一个像 "VERIFY: OK" 这样的字符串(在控制台上)如果数组 #1 至少包含数组 #2 的字符串之一。否则,字符串 "VERIFY: KO"必须打印。

我实现了一些如下代码:

for (int i = 0; i < scopeFile.length; i++) {
                for (String element : scopeJWT) {
                    if (scopeFile[i].contains(element)) {
                        ctx.setSendZuulResponse(true);
                        System.out.println(now + " --- " + "[Check Signature: OK]" + " [Verify Scope: OK]" + " [Verify expTime: OK]");
                    } else {
                        ctx.setSendZuulResponse(false);
                        ctx.setResponseStatusCode(HttpStatus.UNAUTHORIZED.value());
                        System.err.println(now + " --- " + "[VERIFY SCOPE: KO]");
                    }
                }
}

但是,它返回 VERIFY SCOPE: OKVERIFY SCOPE: KO ,即使考虑我报告的数组,我也会只打印 VERIFY SCOPE: OK (因为数组 #1 包含 servicegroup_1 )

有什么想法可以修复我的代码吗?谢谢您

最佳答案

在 Array1 中找到字符串后,您忘记中断循环。 尝试在此行之后添加 break;:

System.out.println(now + " --- " + "[Check Signature: OK]" + " [Verify Scope: OK]" + " [Verify expTime: OK]");

并检查循环外的非正常情况。

像这样:

boolean isOk = false;
for (int i = 0; i < scopeFile.length; i++) {
    for (String element : scopeJWT) {
        if (scopeFile[i].contains(element)) {
            ctx.setSendZuulResponse(true);
            System.out.println(now + " --- " + "[Check Signature: OK]" + " [Verify Scope: OK]" + " [Verify expTime: OK]");
            isOk = true;
            break;
        }
    }
}
if (!isOk) {
    ctx.setSendZuulResponse(false);
    ctx.setResponseStatusCode(HttpStatus.UNAUTHORIZED.value());
    System.err.println(now + " --- " + "[VERIFY SCOPE: KO]");
}

关于java - 如何在两个数组中查找字符串之间的匹配项 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52162016/

相关文章:

javascript - 为什么ES6中的map函数不刷新?

javascript - 如何断言两个数组不相交?

java - 这段java代码是如何产生死锁的?

arrays - 比较数组时删除匹配项

java - quartz : triggering multiple jobs

java - jQuery访问字符串对象的java Map,其中该对象是字符串的映射

C++ 类模板构造函数——用数组 (U*) 重载引用 (U&) 失败

python - 以正确的顺序从数组构建 block 矩阵

java - InetAddress getLocalHost() 未从 C :\WINDOWS\system32\drivers\etc\hosts 返回预期的 IP 地址

Java 设计二维数组