【发布时间】:2021-12-21 14:54:51
【问题描述】:
所以我的计数器不应该为字符串":DD" 计数+1,这就是为什么我写了只有当我的字符串长度为2 时计数器才应该加上+1。但是虽然字符串长度是3,但是它加了+1。这是为什么呢?
P.S.:我已将 length() <=3 放在第一个 if 语句中,而另一个 else if 在第二个 if 语句之后。
int counter = 0;
String tgt = ":DD";
for (int i = 0; i < a.size(); i++) {
if (tgt.length() <= 3 && tgt.charAt(0) == ':' || tgt.charAt(0) == ';') {
if (tgt.length() == 2 &&
tgt.charAt(1) == ')' || tgt.charAt(1) == 'D') {
counter += 1;
}
}
}
【问题讨论】:
-
代码正在做它应该做的事情, :DD 的长度是三,因此
-
这是因为
tgt.charAt(1) == 'D'而发生的。第二个“if”中的条件是a&&b||c,如果“c”为真,则为真。 -
为什么是循环?您没有使用
i的值,因此您可以删除循环并使用counter += a.size();来获得相同的结果。您的意思是在您编码tgt.char(1)的地方使用tgt.char(i)? -
我已经稍微更改了代码以使我的问题更容易理解 xD 我实际上确实将 i 的值用于 tgt。 tgt 本身不是 ":DD" 而是 a.get(i) 因为我正在检查数组的每个元素 :) 感谢您的评论 :D
标签: java for-loop if-statement count counter