布尔逻辑字符串迭代

时间:2014-11-17 19:53:18

标签: java string if-statement boolean

我使用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语句每次都会触发。

我真的不知道我在这里失踪了什么。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

您正在使用- 97减去'a',因此您可以将字符与0-25范围进行比较。但是你只对前两个条件做了这个。继续减去最后2个条件的97,这些条件位于&#34;之前的&#34;字符。