为什么`text.charAt(i + 1)< = text.length()`不起作用?

时间:2013-02-19 20:18:48

标签: java if-statement

case 1: 
if (text1Input.charAt(i+1) <= text1Input.length() &&
    Character.isUpperCase(text1Input.charAt(i+1)))
{
  a += 60;
  b += 100;
}
else
{
  a += 55;
  b += 60;
}
break;

这行代码是否有意义?它不是我想要的方式,也无法解决问题。 该代码用于检查字符串中的下一个字符。如果字符存在(意味着尚未到达字符串的末尾),并且字符为大写,则使用这些坐标。否则,它使用其他。我的问题是无论如何都会使用后者。

2 个答案:

答案 0 :(得分:7)

您将角色与某个位置进行比较,这可能与您的意图不符,因此您可以使用i+1代替x.charAt(i+1)

答案 1 :(得分:4)

该行

text1Input.charAt(i+1) <= text1Input.length()

没有意义。更有意义的是

i+1 < text1Input.length()

您现在正在做的事情是将i+1的{​​{1}}字符的ASCII值与其长度进行比较,这是无意义的。 (您还应该使用text1Input,而不是i+1 < text1Input.length()。)