0

我应该创建一个程序来计算用户输入的特定类型字符的数量。计算大写字母、小写字母、数字(0通过9)和除符号以外的其他字符#的数量。用户输入# 退出。

import java.util.Scanner;
public class countchars
{
    public static void main (String args[])
    {
    Scanner input = new Scanner (System.in);

    char sym;
    int up = 0;
    int low = 0;
    int digit = 0;
    int other = 0;

    System.out.print("Enter a character # to quit: ");
    sym = input.next().charAt(0);

    while(sym != '#')
    {
    System.out.print("Enter a character # to quit: ");
    sym = input.next().charAt(0);

    if (sym >= 'a' && sym <= 'z')
        {
        low++;
        }   
    } 

    System.out.printf("Number of lowercase letters: %d\n", low);
    }
}

这就是我到目前为止的小写计数。问题是当我运行程序并输入 4 个小写字母时,它只算 3。

4

3 回答 3

4

你打电话给

input.next()

第一次计数时两次,所以第一个字符被丢弃,把你的计数弄乱了一个。

于 2013-03-07T06:32:09.763 回答
2

改成这样

while(sym != '#')
    {

    if (sym >= 'a' && sym <= 'z')
        {
        low++;
        }

    System.out.print("Enter a character # to quit: ");
    sym = input.next().charAt(0);

    }
于 2013-03-07T06:32:40.813 回答
0

不要使用两次 input.next();

用这个

sym = input.next().charAt(0);

    while(sym != '#')
    {
    System.out.print("Enter a character # to quit: ");
    //sym = input.next().charAt(0); removed this line and try

    if (sym >= 'a' && sym <= 'z')
        {
        low++;
        }


    } 
于 2013-03-07T06:34:05.660 回答