用Java编写一个程序对用户输入的任意一组字符如{3,1,4,7,2,1,1,2,2}输出其中出现次数最多的字符

编写一个程序,对用户输入的任意一组字符如{3,1,4,7,2,1,1,2,2},输出其中出现次数最~

#include
int main()
{char s[300];
int i,a[100]={0},b[100]={0},k=0;
gets(s);
for(i=0;s[i];i++)
{a[s[i]-32]++;
if(!b[s[i]-32])b[s[i]-32]=i;
}
for(i=1;i<100;i++)
if(a[i]>a[k]||a[i]==a[k]&&b[i]<b[k])k=i;
printf("%c出现%d次
",k+32,a[k]);
}



先给{3,1,4,7,2,1,1,2,2}a1 排序 得到{1,1,1,2,2,2,3,4,7}a2,再设个统计变量数组 a3[count ][value];循环数组a2比较2个数字是否相等。得到{(1,3),(2,3),(3,1),(4,1),(7,1)}a3。在遍历a3比较value大小,你会得到(1,3)和(2,3)。取1,2在到a1里面查找看哪个先出现。得到结果

import java.util.HashMap;
import java.util.Scanner;

public class A {
  public static void main(String argvs[]) {
      String line;
      Scanner sc = new Scanner(System.in);

      while(sc.hasNextLine()) {
          line = sc.nextLine();
          if (line.length()==0) break;

          String []s = line.split(",");
          int a[] = {0,0,0,0,0,0,0,0,0,0};

          for (String i: s) {
              a[Integer.valueOf(i)] ++;
          }
          int p = 0, max = a[0];
          for (int i=1;i<10;i++) {
              if (max<a[i]) {
                  p = i;
                  max = a[i];
              }
          }
          System.out.printf("出现次数最多的字符是:%c, 次数是%d
", 0x30 + p, max);
      }

      sc.close();
  }
}


实现的方法有很多,以下是一次遍历就能实现的方法

    public static void main(String[] args) {
//        以什么格式输入就用什么方法解析数据
//        String line;
//        Scanner sc = new Scanner(System.in);
//        line = sc.nextLine();
//        String[] split = line.split(",");
        Integer[] array = {15,1,2,5,1,3,5,4,12,15};//要操作的数组
        System.out.println(  getMostInteger( array ) );
//        sc.close();
    }

    public static String getMostInteger( Integer[] arrayMath ){
        //key保存出现过的数字,value保存形式为 下标_出现次数长度的字符。
        Map<Integer , String> m = new HashMap<>();
        int max = 1;//保存最大出现的次数
        int minIndex = 0;//保存最大数的下标
        for( int i = 0 ; i < arrayMath.length ; i ++ ){
            if( m.containsKey( arrayMath[i] ) ){
                m.put( arrayMath[i] , m.get( arrayMath[i] ) + 1 );
                String[] s = m.get(arrayMath[i]).split("_");//将索引和出现次数分离
                int length = s[1].length();//获取出现次数
                if( length > max ){
                    max = length;
                    minIndex = Integer.parseInt( s[0] );
                }else if( length == max ){
                    if( Integer.parseInt( s[0] ) < minIndex ){
                        minIndex = Integer.parseInt( s[0] );
                    }
                }
            }else {
                m.put( arrayMath[i] , i + "_" + 1 );
            }
        }
        String result = "出现次数最多的是" + arrayMath[minIndex] + "出现的次数为" + max;
        return result;
    }


用一个map存,key 存字符 ,遍历这组字符,key不存在就存(key,0),如果key已经存在了就value++ ,遍历完了,之后就看那个value大就行,至于取什么就简单了。

用Java编写一个程序对用户输入的任意一组字符如{3,1,4,7,2,1,1,2...
答:import java.util.HashMap;import java.util.Scanner;public class A { public static void main(String argvs[]) { String line; Scanner sc = new Scanner(System.in); while(sc.hasNextLine()) { line = sc.nextLine(); if (line.length()==0) break; String []s...

JAVA题:编写一个加密程序,对用户输入的字符串加密后输出。加密的方法是...
答:public String getPass(String str){ String str=""; for(int i=0;i<str.length();i++){ char ch=str.charAt(i); //得到单个字符ch; if(ch>64 && ch<91){ //成立=>ch是大写字母 str+=(char)(155-ch); //大写对应字母之和:155 eg:'A'+'Z'=155 }el...

用JAVA编一个程序,很基本的,帮忙一下,课堂作业。 1)程序随机分配给客户...
答:import java.util.Scanner;public class AddTest { public static void main(String args[]){ boolean flag = true;while(flag){ Scanner scanner = new Scanner(System.in);System.out.println("请输入一个1-100的整数");//input 是接收控制台输入的整数 int input = scanner.nextInt();//创...

...的用户名和密码是否正确,输出登录判断结果,用java怎么写?
答:package test;\x0d\x0aimport java.util.Scanner;\x0d\x0apublic class TestLogin {\x0d\x0aprivate static final String USERNAME = "Tom";//此处定义用户名\x0d\x0aprivate static final String PASSWORD = "123";//定义密码\x0d\x0apublic static void main(String[] args) {\x0d\x0...

java 编写一个程序,提示用户输入0~15之间的一个整数,显示其对应的十六进...
答:import java.util.Scanner;public class TestDemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(true){ String str = sc.nextLine(); String result = getResult(str); System.out.println(result); } }private static Str...

编写一个java程序,输入用户的姓名和性别,输出姓名和性别,并且它们之间...
答:class test{ public static void main(String[]args){ Scanner sc = new Scanner(System.in);String s = sc.nextLine();String []arr = s.split(" ");System.out.println(Arrays.toString(arr));} }

编写一个Java应用程序,实现如下功能: 随机分配给客户一个1~100之间的...
答:{ new Gui("猜数字游戏"); } } class Gui extends Frame implements ActionListener { static int number;static int guessnumber;static TextField tx;static Label lb3,lb1,lb2;static Button bt3,bt1,bt2;Gui(String s){ super(s);lb1=new Label("单击该按钮可以产生一个0-100之间的随机...

java,编写一个用户身份验证程序,用户名及密码从键盘输入
答:你的程序有一点小问题,m的值没改变,我给你改了一下,你看看吧。import java.util.*;class User{ private String userName,password;User(){ System.out.println("输入用户名:");Scanner reader=new Scanner(System.in);userName=reader.nextLine();System.out.println("输入密码:");Scanner ...

java编写一个应用程序,接收用户输入的一行字符串,统计字符个数符串...
答:import java.util.ArrayList;import javax.swing.*;import javax.swing.JButton;import javax.swing.JPanel;import javax.swing.JTextField;public class test { / param args / public static void main(String[] args) { // TODO Auto-generated method stub testJFrame frame=new testJFrame();...

用Java写一个用户注册界面,点击确认后,可保存在文件中
答:昨天刚好有人提问了一个类似的问题,我把昨天的回答发给你,供你参考 , 主要是思路, 如果是作业的话, 最好不要和同学相同, 自己理解后, 重新写1个,会比较好 效果图 参考代码和注释 import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;//该窗口继承自JFrame, ...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网