⑴ java:输入一个纯字母字符串,求出现频率最多的那个字母和出现的次数
你好,代码如下:
/**
* 统计字符串中出现最多的字母及其次数
* @author gogole_09
*
*/
public class CountChar {
private int[] charCount = new int[26]; // 保存字母出现的次数,初步只统计26个字母(都转换成小写字母),
/**
* 统计字母出现次数
*
* @param str
*/
private void countChar(String str) {
str = str.toLowerCase();
// 字母a-z的索引
for (char chari = 'a'; chari <= (char) ('a' + 25); chari++) {
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (chari == ch) {
charCount[chari - 'a']++;
}
}
}
}
/**
* 计算出现最多的字母
* @return
*/
private char getMaxChar() {
char max = '?';
int maxcount = 0;
for (char chari = 'a'; chari <= (char) ('a' + 25); chari++) {
if (charCount[chari - 'a'] >= maxcount) {
maxcount = charCount[chari - 'a'];
max = chari;
}
}
return max;
}
/**
* 获取出现最多的字母出现的具体次数
* @return
*/
private int getMaxCount(){
return getMaxChar()=='?'?charCount[getMaxChar()-'a']:-1;
}
public static void main(String[] args) {
String str="aaabab";
CountChar c=new CountChar();
c.countChar(str);
System.out.println(str+":中出现次数最多的字母是:");
System.out.println(c.getMaxChar());
System.out.println("出现次数是:");
System.out.println(c.getMaxCount());
}
}
⑵ 怎么用c语言统计一个字符串中出现最多的字母,并输出这个字符出现的次数
摘要 构建一个循环,从头到尾扫描字符串,比如abcabcd,首先判断所扫描的字符是否出现过,若没出现过,构建一个变量,初始值为一(变量与字母一一对应,变量的值即为该字符出现的次数);若出现过,使其所对应的变量加一。循环结束以后,比较这几个变量的大小,可以用冒泡法或快排,将最大值输出。具体程序并不复杂,相信楼主可以完成,楼下那个开数组的方法比较浪费内存,不建议使用。
⑶ 用java实现:输入一串字母的字符串,求出现最多的那个字母,出现了多少次
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String s = new Scanner(System.in).next(); //读入输入的字符串
List<String> chars=Arrays.asList(s.split("")); //把字符串分解成一个个字符
HashMap<String,Integer> map=new HashMap<String,Integer> (); //建立一个map key为字符 value为key出现的次数
int max=0;String maxChar=null; //maxChar为出现最多的字符,max为次数
for(String i:chars){
int cs=map.get(i)==null?0:map.get(i); //取出字符所对应的次数
cs++; //次数加1
if(cs>max){ //如果当前次数为最大
maxChar=i;
max=cs;
}
map.put(i, cs); //改变map中的次数
}
System.out.println(map+":"+"\n"+maxChar+":"+max);
}
}
⑷ JAVA如何找出字符串中出现最多的字母
import java.util.HashMap;
import java.util.Map;
public class RemoveMostWords
{
public static void main(String[] args)
{
String str = "addcbbs";
System.out.println("处理前的字符串:" + str);
String deelStr = removeMostWords(str);
System.out.println("处理后的字符串:" + deelStr);
}
private static String removeMostWords(String str)
{
if (null == str || "".equals(str))
{
return str;
}
//初始化最大次数为2次
int iMax = 2;
//将所有的字符与出现的次数作为一个键值对
Map<Character, Integer> timeMap = new HashMap<Character, Integer>();
Character cTmp;
Integer iTmp;
for (int i = 0; i < str.length(); i++)
{
cTmp = str.charAt(i);
iTmp = timeMap.get(cTmp);
//首次出现的字符,不需要比较
if (null == iTmp)
{
timeMap.put(cTmp, 1);
continue;
}
//出现次数+1,放入map
iTmp = iTmp + 1;
timeMap.put(cTmp, iTmp);
//若超过最大次数,则替换最大次数
iMax = iMax < iTmp ? iTmp : iMax;
}
//将所有达到最大次数的字符替换成空
for (Map.Entry<Character, Integer> entry : timeMap.entrySet())
{
if (entry.getValue() == iMax)
{
str = str.replaceAll(String.valueOf(entry.getKey()), "");
}
}
return str;
}
}
⑸ C语言编程题目 给一个字符串,请找出出现次数最多的大写英文字母。
#include<stdio.h>
int main()
{
char ch;
int max,c[26]={0};
while((ch=getchar())!='\n')
if(ch>='A'&&ch<='Z')
{
++c[ch-'A'];
if(c[ch-'A']>c[max])
max=ch-'A';
}
if(c[max])
printf("%c:%d\n",(char)(max+'A'),c[max]);
else
printf("字符串不包含任何大写字母\n");
return 0;
}
⑹ 找出字符串中出现次数最多的字符 c语言
#include<iostream>
#include<string>
using namespace std;
void main(void)
{
char testStr[100] = { "We are happppppppppy." };
int aToZ[256]; //初始化一个 int aToZ[256]并清零,对应256个字符的ASCII值;
int maxArrayNum;
int count = 256;
while (count--)
{
aToZ[count] = 0;
}
//遍历字符串数组,并相应在aToZ[i]中计数;
for (int i = 0; testStr[i] != '