对于循环计数,即使跳过也是如此

时间:2015-05-07 18:05:04

标签: java

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;
                }
            }

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

我认为这是我的“其他”逻辑的问题,但不知道我应该怎么做。

由于

编辑:示例输入:4 + j + 55
输出:
4
+
Ĵ
+
55个
5&lt; ----我要停止的事情

1 个答案:

答案 0 :(得分:2)

看一下这个示例字符串“12”,在外部循环的第一次迭代中它会做:

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

  • 内部循环将追加'2'

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

  • 外部循环将增加i并查看数字'2'

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