gpt4 book ai didi

java - 即使跳过,For 循环计数也会持续到最后

转载 作者:行者123 更新时间:2023-11-30 03:26:25 25 4
gpt4 key购买 nike

for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
Token t;
StringBuilder sb;
if (Character.isDigit(c)) {
sb = new StringBuilder().append(c);
for (int j = i + 1; j < s.length(); j++) {
if (Character.isDigit(s.charAt(j))) {
sb.append(s.charAt(j));

} else {
i = j-1;
break;
}
}

本质上它需要遍历一个字符串,并提取数字。具有多个数字的数字需要保持在一起。它在大多数情况下都能正确执行此操作,但如果末尾有多位数字,则会将最后一位数字复制到新 token 中。 ( token 将数据存储为字符串,此代码还继续检查字母和变量。)

我认为这是我的“else”逻辑的问题,但不确定我应该如何做到这一点。

谢谢

编辑:示例输入:4+j+55
输出:
4
+
J
+
55
5 <----我想阻止的事情

最佳答案

看一下这个示例字符串“12”,在外循环的第一次迭代中它将执行以下操作:

  • 检查“1”是否为数字并运行内循环

  • 内部循环将追加“2”

  • 内部循环将因到达字符串末尾而退出(但不调整i的值)

  • 外循环将递增 i 并查看数字“2”

内部循环需要检测“字符串结尾”情况并相应地设置i

关于java - 即使跳过,For 循环计数也会持续到最后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30108571/

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