日期:2014-05-20  浏览次数:20625 次

热心好友帮忙看下我的程序出了什么问题,在下不胜感激!
Java code

public class Test4 
{
    static char c;
    public static void main(String[] args) 
    {
        String s="Thinking in Java has 4 Edition";
        int lCount=0, uCount=0, oCount=0;
        for(int i=0;i<s.length();i++)
        {
            c=s.charAt(i);
            if(c>='a'&&c<='z')
            {
                lCount++;
            }
            else if(c>='A'&&c<='Z')
            {
                uCount++;
            }
            else
                {oCount++;}
        }
        System.out.println("该字符串共计有 "+s.length()+"个字符");
        System.out.println("其中有大写英文字母数 "+s.length()+"个,");
        System.out.println("其中有小写英文字母数 "+s.length()+"个,");
        System.out.println("其中有非英文字母数"+s.length()+"个.");
    }
}


运行了几次,结果很失望,求好心人赐教!

------解决方案--------------------
你的代码很正常,初心引起的
Java code

    public static void main(String[] args) throws Exception {
        char c;
         String s="Thinking in Java has 4 Edition";
            int lCount=0, uCount=0, oCount=0;
            for(int i=0;i<s.length();i++)
            {
                c=s.charAt(i);
                if(c>='a'&&c<='z')
                {
                    lCount++;
                }
                else if(c>='A'&&c<='Z')
                {
                    uCount++;
                }
                else
                    {oCount++;}
            }
            System.out.println("该字符串共计有 "+s.length()+"个字符");
            System.out.println("其中有大写英文字母数 "+uCount+"个,");
            System.out.println("其中有小写英文字母数 "+lCount+"个,");
            System.out.println("其中有非英文字母数"+oCount+"个.");
        }

    }

------解决方案--------------------
楼主想要问什么?
System.out.println("该字符串共计有 "+s.length()+"个字符");
System.out.println("其中有大写英文字母数 "+s.length()+"个,");
System.out.println("其中有小写英文字母数 "+s.length()+"个,");
System.out.println("其中有非英文字母数"+s.length()+"个.");
你这里全是s.length(),值一样有问题吗?
------解决方案--------------------
System.out.println("该字符串共计有 "+s.length()+"个字符");
System.out.println("其中有大写英文字母数 "+s.length()+"个,");
System.out.println("其中有小写英文字母数 "+s.length()+"个,");
System.out.println("其中有非英文字母数"+s.length()+"个.");
---------------
复制是个悲剧。。。
------解决方案--------------------
System.out.println("该字符串共计有 "+s.length()+"个字符");
System.out.println("其中有大写英文字母数 "+lCount+"个,");
System.out.println("其中有小写英文字母数 "+uCount+"个,");
System.out.println("其中有非英文字母数"+oCount+"个.");

仔细看好,你输出什么?
------解决方案--------------------
代码很正常,打印结果时错了:
System.out.println("该字符串共计有 "+s.length()+"个字符");
System.out.println("其中有大写英文字母数 "+uCount+"个,");
System.out.println("其中有小写英文字母数 "+lCount+"个,");
System.out.println("其中有非英文字母数"+oCount+"个.");