首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在for循环中的Print语句会导致多个输出而不是一个输出,如何在不使用“返回”的情况下修复这个问题?

在for循环中的Print语句会导致多个输出而不是一个输出,如何在不使用“返回”的情况下修复这个问题?
EN

Stack Overflow用户
提问于 2019-04-06 17:22:33
回答 5查看 60关注 0票数 0

我是个初学者。如果字符串输入由'l‘+’任何字符‘+ 'l’组成,我的代码需要显示“是”。例如,"uwbıclsl“应该有一个”是“输出,因为一个字母夹在两个l之间。然而,由于我的打印语句在For循环中,它会显示几个”是“和”否“。如何修复它,使我只有一个输出(是或否),并且仍然有打印语句而不是返回?

代码语言:javascript
复制
for (int i = 0; i < s.length(); i++) {

            if ((s.charAt(i) == 'l') && (s.charAt(i + 2) == 'l')) {

                System.out.print("YES");

            } else
                System.out.print("NO");
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-04-06 17:37:19

做以下改变-

代码语言:javascript
复制
String result = "NO";
for (int i = 0; i < s.length(); i++) {

            if ((s.charAt(i) == 'l') && (s.charAt(i + 2) == 'l')) {

                result = "YES";

            }
}

System.out.println(result);

注意-您现在不需要其他块,您还需要在您的if语句中处理StringIndexOutOfBoundsException异常,希望您能够解决这个问题。

票数 0
EN

Stack Overflow用户

发布于 2019-04-06 17:30:51

最好为此使用regexes。

代码语言:javascript
复制
System.out.println(s.matches(".*l.l.*") ? "YES" : "NO");
票数 1
EN

Stack Overflow用户

发布于 2019-04-06 17:28:22

如果您只需要打印一次“是”/“否”,请尝试以下操作。即使多个匹配,它也只是说是一次。还将"for“循环结束长度固定为( length ()-2),以避免异常。如果您有任何问题,或者这不是一个预期的解决方案,请发表评论。

代码语言:javascript
复制
boolean isFound = false;
for (int i = 0; i < s.length()-2; i++) {

            if ((s.charAt(i) == 'l') && (s.charAt(i + 2) == 'l')) {

              isFound = true;
            } 
}

System.out.println (isFound?"YES":"NO");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55551607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档