我有以下任务要做:
如果字符串“cat”和“dog”在给定字符串中出现的次数相同,则返回true。
catDog("catdog") → true catDog("catcat") → false catDog("1cat1cadodog") → true
我的代码:
public boolean catDog(String str) {
int catC = 0;
int dogC = 0;
if(str.length() < 3) return true;
for(int i = 0; i < str.length(); i++){
if(str.charAt(i) == 'd' && str.charAt(i+1) == 'o' && str.charAt(i+2) == 'g'){
dogC++;
}else if(str.charAt(i) == 'c' && str.charAt(i+1) == 'a' &&
str.charAt(i+2) == 't'){
catC++;
}
}
if(catC == dogC) return true;
return false;
}
但是对于catDog("catxdogxdogxca")→false我得到了一个StringIndexOutOfBoundsException. 我知道这是由 if 子句在尝试检查是否charAt(i+2)等于 t 时引起的。我怎样才能避免这种情况?谢谢你的问候:)
慕勒3428872
相关分类