JAVA字符统计2

字符统计2

Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description

输入英文句子,输出该句子中除了空格外出现次数最多的字符及其出现的次数。

Input

输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。

Output

逐行输出每个句子中出现次数最多的字符及其出现的次数(如果有多个字符的次数相同,只输出ASCII码最小的字符)。

Sample Input
I am a student
a good programming problem
ABCD abcd ABCD abcd
Sample Output
a 2
o 4
A 2

package text;
import java.util.Arrays;
import java.text.DecimalFormat;
import java.util.Scanner;
public class Main {
	public static void main(String args[]) {
		Scanner cin = new Scanner(System.in);
		
		while(cin.hasNext())
		{
			int a[] = new int[1000];
			String ch = cin.nextLine();
			int i;
			for(i = 0; i < ch.length(); i++)
			{
				if(ch.charAt(i) != ' ')
				{
					if(ch.charAt(i) >= 'A' && ch.charAt(i) <= 'Z') {
						a[ch.charAt(i)-'A']++;//将大写字母存储在下标0-26里
					}
					else if(ch.charAt(i) >= 'a' && ch.charAt(i) <= 'z') {
						a[ch.charAt(i)-'a' + 26]++;//将小写字母存储在下标26-42里
					}
				}
			}
			int max = 0, b = 0;
			for(i = 0; i < a.length; i++) {
				if(max < a[i])
				{
					max = a[i];
					b = i;
				}
			}
			if(b < 26) {
				char e = (char)('A' + b);//得到对应的字符
				System.out.println(e + " " + max);
			}
			else
			{
				char e = (char)('a' + b - 26);
				System.out.println(e + " " + max);
			}
		}
		cin.close();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值