【发布时间】:2016-02-20 18:44:01
【问题描述】:
对于这个问题:http://codingbat.com/prob/p121193
我已经写了这段代码:
public int sumNumbers(String str) {
int y = 0;
int z = 0;
for (int f4 = 0; f4 < str.length(); f4++) {
if (Character.isDigit(str.charAt(f4))) {
for (int f5 = f4; f5 < str.length(); f5++) {
if (!Character.isDigit(str.charAt(f5))) {
z = (Integer.parseInt(str.substring(f4, f5)));
y = y + z;
f4 = f5 - 1;
break;
}
}
}
}
return y;
}
这些是问题(它们不是代码,但它拒绝接受我的问题):
sumNumbers("abc123xyz") Expected: 123; Returned: 123
sumNumbers("aa11b33") Expected: 44; Returned: 11
sumNumbers("7 11") Expected: 18; Returned: 7
sumNumbers("Chocolate") Expected: 0; Returned: 0
sumNumbers("5hoco1a1e") Expected: 7; Returned: 7
sumNumbers("5$$1;;1!!") Expected: 7; Returned: 7
sumNumbers("a1234bb11") Expected: 1245; Returned: 1234
sumNumbers("") Expected: 0; Returned: 0
sumNumbers("a22bbb3") Expected: 25; Returned: 22
总而言之,由于某种原因,我的代码无法处理多个数字中的多个数字,我不知道为什么。我已经断断续续地研究了一段时间,虽然我拒绝直接查找答案,但我真的可以使用一些帮助。 我在高中AP Comp。科学。
【问题讨论】:
-
sumNumbers 输出的最后一行:您说预期是 25,返回 22...看起来返回应该是 22? sumNumbers("s1234bb11") 相同,看起来将正确的值返回给我。你能描述一下你所期望的算法吗?没关系。 codingbat 链接描述了它。