我使用for循环来解析字符串,如下所示:
for (int i = 1; i < s.length(); ++i)
字符串全是小写的,如果当前字符或前一个字符不是字母,我想避免它,如下所示:
if (s.charAt(i) - 97 < 0 || s.charAt(i) - 97 > 25 || s.charAt(i-1) < 0 || s.charAt(i-1) > 25)
{
continue
}
我输入的第一个字符串是&#34; marty,&#34;然而if语句正在注册。我已经确认四个布尔值中的每一个都评估为false,但对于每个字符串中的每个字母,if语句本身显然都是正确的。
我甚至制作了四个单独的bool变量,每个参数一个,确认它们都是假的,然后将它们全部组合在一起。也是假的。但if语句每次都会触发。
我真的不知道我在这里失踪了什么。任何人都可以帮助我吗?
答案 0 :(得分:3)
您正在使用- 97
减去'a'
,因此您可以将字符与0-25范围进行比较。但是你只对前两个条件做了这个。继续减去最后2个条件的97
,这些条件位于&#34;之前的&#34;字符。