谁能告诉我Android Studio中的这段代码是什么问题?

问题描述

我想检查字符串的长度是否> 3,以及是否有两个以上的空格。 我实现了一个for循环来计算有多少空间(下面的代码)。 然后用“如果”。 当我添加&&时,如果少于3个字符,应用程序将崩溃。 当我删除&&部分时,它可以工作,但是,我需要它! :/ 我使用的逻辑是否有问题? :/

for循环:

for(int i=0; i<4; i++){
        if(message.charat(i) == ' '){
              count++;
        }
}

然后是if部分:

if(message.length()<3 && count>2){
     outputText.setText("Duh! DO NOT TRY TO figURE THIS OUT!");
     Toast.makeText(getApplicationContext(),"WARNING!!",Toast.LENGTH_SHORT).show();
}
else
     methodEncrypt(message);

解决方法

NomadMaker是正确的。循环可能失败的原因之一是假设“消息”的长度大于4。如果message =“ 123”,则尝试获取“ charAt”索引4将会失败,因为请求的索引大于3。字符串的大小。

更新至:

for(int i=0; i < message.length(); i++)
{
        if(message.charAt(i) == ' ')
        {
              count++;
        }
}

应解决此问题。也可以考虑一些较小的性能改进。例如:

  1. 如果String的长度小于4,请不要麻烦遍历String。
  2. 一旦找到第二个空格,就不必遍历String的其余部分。