我应该创建一个计算特定字符类型数量的程序
由用户输入。大写字母,小写字母,数字的数量
(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个。
答案 0 :(得分:4)
您已致电
input.next()
第一次计算时,两次,所以第一个字符被丢弃,将你的计数搞乱一次。
答案 1 :(得分:2)
像这样改变
while(sym != '#')
{
if (sym >= 'a' && sym <= 'z')
{
low++;
}
System.out.print("Enter a character # to quit: ");
sym = input.next().charAt(0);
}
答案 2 :(得分: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++;
}
}