查找和计算大写字母

时间:2013-08-14 18:57:16

标签: java string methods replace

我已经编写了一个方法来检查大写字母的字符串,如果它发现一个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;
    }

1 个答案:

答案 0 :(得分:5)

您需要明确检查msg.length() > 0。它可以是一个空字符串,这会导致异常。

(您也可以省略replaceAll(..)部分,但它无法帮助您找到大写字母的数量)