Java 对于循环计数,即使在跳过时也是最后一次 for(int i=0;i

Java 对于循环计数,即使在跳过时也是最后一次 for(int i=0;i,java,Java,本质上,它需要遍历一个字符串,然后拉出数字。具有多个数字的数字需要保持在一起。这在大多数情况下都是正确的,但如果一个多数字在末尾,它会将最后一个数字复制到一个新的令牌中。(令牌将数据存储为字符串,此代码也会检查字母和变量。) 我想这是我的“else”逻辑的问题,但不确定我应该怎么做 谢谢 编辑:样本输入:4+j+55 输出: 4 + J + 55 5看看这个示例字符串“12”,在外循环的第一次迭代中,它将执行以下操作: 检查“1”是否为数字,然后运行内部循环 内部循环将附加“2” 由于到达字符

本质上,它需要遍历一个字符串,然后拉出数字。具有多个数字的数字需要保持在一起。这在大多数情况下都是正确的,但如果一个多数字在末尾,它会将最后一个数字复制到一个新的令牌中。(令牌将数据存储为字符串,此代码也会检查字母和变量。)

我想这是我的“else”逻辑的问题,但不确定我应该怎么做

谢谢

编辑:样本输入:4+j+55
输出:
4
+
J
+
55

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

  • 检查“1”是否为数字,然后运行内部循环

  • 内部循环将附加“2”

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

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


内部循环需要检测“字符串结束”的大小写,并相应地设置
i

我们可以看到一些示例输入和所需的输出吗?完成,很抱歉……这就是我做错的地方。我不需要else语句来处理迭代,如果内部循环追加,我只需要执行i++即可。谢谢!
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;
                }
            }