gpt4 book ai didi

java - 循环不会多次迭代 if 语句

转载 作者:行者123 更新时间:2023-12-01 20:12:06 25 4
gpt4 key购买 nike

所以,我试图用这段代码解决的最初问题是获取一个不同长度的字符串,然后仅当该字符串包含 1-3 个“e”时才返回 true,并且如果有更少或更多则返回 false 。我想从给定的字符串中单独提取“e”并将它们放入一个单独的字符串中,然后测试新字符串必须有多少个“e”才能产生正确的 boolean 值。通过将 3 个“e”放入空字符串来隔离 pol 执行,我发现代码对于所有至少有 1 个 e 的内容都返回 false。那里没有问题,但后来我用 2 个“e”替换了空字符串,发现至少有 1 个 e 的任何内容都会返回 true,即使该字符串总共包含 50 个“e”。这意味着循环在遇到 if 语句时仅迭代一次,因此仅将 1 个 e 添加到 String pol 中。我的首要问题是:如何让循环根据控件迭代 if 语句。

也不必担心这段代码之前的内容:只知道这是 boolean 值

String pol = "";
String some;
for (int len = 0; len < str.length(); len = len + 1) {
some = str.substring(len, len + 1);
if (some.equals("e")) {
pol = "" + some;
}
}
if (pol.equals("e") || pol.equals("ee") || pol.equals("eee"))
return true;
return false;

最佳答案

每当遇到e时,您都会覆盖pol而不是附加到它。而不是

pol = "" + some;

您的意思可能是:

pol += some;

无论如何,附加到字符串似乎是完成此任务的一种笨拙的方法。每次遇到 e 时增加一个整数计数器会容易得多。或者使用 Java 8 的流甚至更简单:

long count = str.chars().filter(c -> c == 'e').count();
return count >= 1 && count <= 3;

关于java - 循环不会多次迭代 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46534372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com