Я написал метод проверки строки заглавными буквами, и если он найдет один счетчик int, увеличен на 1. Но когда я тестирую метод im, которому говорят, что деление на 0 не допускается , Он не должен быть 0 .. может ли кто-нибудь пролить свет на это?Поиск и подсчет заглавных букв
public final boolean findIfCaps(String msg)
{
int count=0;
msg = msg.replaceAll("\\W","");
for(int x=0;x<msg.length();x++){
if(Character.isUpperCase(msg.charAt(x)))
count++;
}
double percent = count/msg.length();
if(percent>0.5)
return true;
return false;
}
Какое сообщение вы тестирование это на? Кроме того, если вы перейдете к отладчику, что означает 'msg' после вызова функции replaceAll()'? – Michelle
Что вы переходите в 'findIfCaps', когда возникает ошибка? Если он сделан только из символов, отличных от слов, 'msg = msg.replaceAll (" \\ W "," ")' превратит 'msg' в пустую строку, длина которой равна 0. – andersschuller
Вам это не нужно 'replaceAll' для вашей задачи. – Maroun