JAVA 编程,输入一串字符,找出出现最多的字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA 编程,输入一串字符,找出出现最多的字符相关的知识,希望对你有一定的参考价值。
参考技术A import java.util.Scanner;public class Statistics
public static void main(String[] args)
Scanner input=new Scanner(System.in);
System.out.print("请输入该字符串:");
String s=input.nextLine();
boolean boo=false;
String s_tmp="";
int s_count=0;
int len=s.length();
int count=1;
for(int a=0;a<len-1;a++)
if(a>0)
for(int b=a;b<1;b--)
if(s.substring(b,b+1).equals(s.substring(b-1,b))==true)
boo=true;
for(int c=(a+1);c<len;c++)
if(boo==false&&s.substring(a,a+1).equals(s.substring(c,c+1))==true)
count++;
if(count>s_count)
s_count=count;
s_tmp=s.substring(a,a+1);
count=1;
if(s_tmp.equals(" ")==true)
System.out.println("出现次数最多的是空格,共出现了"+s_count+"次");
else
System.out.println("出现次数最多的是"+s_tmp+"字符,共出现了"+s_count+"次");
参考技术B import java.util.Scanner;
public class Maintest
public static void main(String[] args)
System.out.println("输入字符串");
Scanner sc=new Scanner(System.in);
String str=sc.next();
char[] cs=str.toCharArray();
int[] c=new int[256];
int i=0;
while(i<256)
c[i]=0;
i++;
int max=0;
for(int j=0;j<cs.length;j++)
c[cs[j]]++;
if(max<c[cs[j]]++)
max=cs[j];
System.out.println("出现最多的字符是"+(char)max);
本回答被提问者采纳 参考技术C 很简单,把字符串转化为数组,通过数组的操作来实现
找出字符串中出现次数最多的字符和次数
参考技术A 由于需要找出字符和次数,这里可以利用Map键值对的形式来存储,先通过遍历字符串并比较字符,如果Map中已经存在该字符就修改相对应的value值,也就是每次发现相同的字符就value++,这样就得出了字符串中所有字符以及相对应出现的次数的键值对对象。最后通过遍历Map和比较找出出现次数最多的字符即可。获取到Map对象通过遍历比较找出出现次数最对的键值对
如果字符串是“aaaabbbbcc”,出现次数相同并且都是最多的那怎么办呢?
这里我觉得可以再创建一个teamMap来存放出现次数最多有多个的情况,然后每次返回结果前就去看teamMap是否存在两个或多于两个的情况,存在的话就都打印出来。
无外乎就是在遍历的时候再多进行一次比较,可以分别创建最大和第二的两个变量来存储,然后在比较的时候再增加一层else if.
以上是关于JAVA 编程,输入一串字符,找出出现最多的字符的主要内容,如果未能解决你的问题,请参考以下文章