我已经编写了一个方法来检查大写字母的字符串,如果它发现一个int计数增加了1.但是当我测试方法时,我被告知不允许除以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;
}
答案 0 :(得分:5)
您需要明确检查msg.length() > 0
。它可以是一个空字符串,这会导致异常。
(您也可以省略replaceAll(..)
部分,但它无法帮助您找到大写字母的数量)