永发信息网

java基础在线等急。。。。

答案:4  悬赏:30  手机版
解决时间 2021-07-18 09:55
  • 提问者网友:棒棒糖
  • 2021-07-18 06:49

 1、编写一个Java应用程序,对用户输入的任意一组字符如{1,3,4,7,2,1,1,5,2},输出其中出现次数最多且数值最大的字符,并显示其出现次数。

请问这题改怎么做呢?麻烦大家帮我解答下,谢谢哦

最佳答案
  • 五星知识达人网友:骨子里都是戏
  • 2021-07-18 07:00

存储次数用一个Integer的HashMap存就可以了,之后遍历找次数最多的。


至于最大数,用一个int每次比较即可。


但这两个有可能不是同一个数噢?


参考代码:


import java.util.*;


public class Main
{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);


Map<Integer, Integer> data = new HashMap<Integer, Integer>();


int m = scanner.nextInt();
data.put(m, 1);


while(scanner.hasNext()) {
int t = scanner.nextInt();
if (t > m)
{
m = t;
}


Integer n = Integer.valueOf(t);
if (data.containsKey(n))
{
data.put(n, data.get(n) + 1);
}
else
{
data.put(n, 1);
}
}


System.out.println("最大的数是:" + m);


Integer m2 = Integer.valueOf(m);
for (Integer key: data.keySet()) {
if(data.get(key) > data.get(m2)) {
m2 = key;
}
}
System.out.println("出现次数最多的数是:" + m2);
}
}


全部回答
  • 1楼网友:英雄的欲望
  • 2021-07-18 10:38

import java.util.ArrayList; import java.util.HashMap; import java.util.Map;

public class TT { public static int Nums[]={1,3,5,6,7,5,4,5,3,9,4,5,3,9}; public static int length=Nums.length; public static ArrayList list=new ArrayList(); public static Map<Integer, Integer> NumCounts = new HashMap<Integer, Integer>(); public static Integer max; //最大数 public static Integer maxCountNum; //最大且次数最多的数 public static void main(String[] args) { sort(); findMaxNumByCount(); } //排序 public static void sort(){ //先排序 (从小到大) for(int i=0;i<length;i++){ for(int j=i+1;j<length;j++){ int temp; if(Nums[i]>Nums[j]){ temp=Nums[j]; Nums[j]=Nums[i]; Nums[i]=temp; } } } max=Nums[length-1]; System.out.println("\r\n\r\n最大的数是:"+max+" \r\n"); } //找出出现次数最多的且数字最大的数 public static void findMaxNumByCount(){ for(int i=0;i<length;i++){ if(!list.contains(Nums[i])){ list.add(Nums[i]); //System.out.println("数字:"+Nums[i]+"出现了:"+getNumCout(Nums,Nums[i])[1]+"次"); int s[]=getNumCout(Nums,Nums[i]); NumCounts.put(s[0],s[1]); } } maxCountNum=max; for (Integer key: NumCounts.keySet()) { if(NumCounts.get(key) > NumCounts.get(maxCountNum)) { maxCountNum = key; } } System.out.println("最大数且次数最多的是:"+maxCountNum); } //返回一个数组 [数字,次数] public static int[] getNumCout(int Nums[],int num){ int num$count[]=new int[2]; //累计 数字,出现的次数 int count=0; for(int i=0;i<Nums.length;i++){ if(num==Nums[i]){ num$count[0]=num; count++; } } num$count[1]=count; return num$count; } }

最大的数是:9

最大数且次数最多的是:5

  • 2楼网友:渊鱼
  • 2021-07-18 09:01

public class test{ static public void main(String a[]){ char[] ch={'1','3','4','7','2','1','1','5','2'}; String str=new(ch); //将char构造为一字符 int num=0,result=0,temp=0; for(int i=0;i<ch.length;i++ ){ fot(int j=0;j<ch.length;j++){ if(str.indexOf(ch[i],j)!=-1){ //判断ch[i],从j位置开始,在str出现的位置,否则返回-1 temp++;

} else{

if(temp>result){ result=temp; num=ch[i]; } break;

} }

} System.out.println("出现最多的字符是:"+num+" 出现的次数为:"+result);

} }

由于不方便测试,没有实际测试,若有问题可以贴处理

  • 3楼网友:迷人又混蛋
  • 2021-07-18 08:29
import java.io.BufferedReader; import java.io.InputStreamReader; public class Compare { public static void main(String[] args){ try{ System.out.println("请输入一组数字:(以空格隔开)"); InputStreamReader reader=new InputStreamReader(System.in); BufferedReader br = new BufferedReader(reader); String input = br.readLine(); String[] inputs=input.split(" "); int max=-10000,count=0; for(int i=0;i<inputs.length;i++){ if(i==0){ max=Integer.parseInt(inputs[i]); }else{ if(max<Integer.parseInt(inputs[i])){ max=Integer.parseInt(inputs[i]); } } } for(int j=0;j<inputs.length;j++){ if(max==Integer.parseInt(inputs[j])){ count++; } } System.out.println("最大的数是:"+max+",且出现次数是:"+count); }catch(Exception ex){} } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯