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; ----我要停止的事情
答案 0 :(得分:2)
看一下这个示例字符串“12”,在外部循环的第一次迭代中它会做:
检查'1'是否为数字并运行内循环
内部循环将追加'2'
由于到达字符串的末尾,内部循环将退出(但不调整i
的值)
外部循环将增加i
并查看数字'2'
内部循环需要检测“字符串结束”的情况并相应地设置i