Может ли кто-нибудь проверить мое решение?
Я хочу вернуть true, если строки «кошка» и «собака» появляются одинаковое количество раз в данной строке. Существуют различные строки с разными номерами "кошка" и "собака".
public boolean catDog(String str)
{
int catAnswer = 0;
int dogAnswer = 0;
int cat_Count = 0;
int dog_Count = 0;
for (int i=0; i< str.length()-1; i++)
{
String sub = str.substring(i, i+2);
if ((sub.equals("cat"))) cat_Count++;
if ((sub.equals("dog"))) dog_Count++;
catAnswer = cat_Count;
dogAnswer = dog_Count;
} //end for
if(dogAnswer == catAnswer ) {return true;}
// else
return (dogAnswer != catAnswer);
}
ОБНОВЛЕНИЕ:
Если я использую i + 3, я получаю код ошибки
Исключение: java.lang.StringIndexOutOfBoundsException:
Индекс строки вне диапазона: 7 (строка
число: 10) - следовательно, я использую я + 2 (нет
сообщается об ошибках
Изменение на i
Суть проблемы в том, что ответ может быть либо истинным, либо ложным, если в различных строках есть переменные числа "кошка" и "собака"
вывод кода можно увидеть на http://codingbat.com/prob/p111624 - проблема со строкой catDog
Пожалуйста, попробуйте вырезать и вставить мой код, чтобы увидеть результат - это объяснит более наглядно, чем я мог бы сказать