1、编写一个Java应用程序,对用户输入的任意一组字符如{1,3,4,7,2,1,1,5,2},输出其中出现次数最多且数值最大的字符,并显示其出现次数。
请问这题改怎么做呢?麻烦大家帮我解答下,谢谢哦
1、编写一个Java应用程序,对用户输入的任意一组字符如{1,3,4,7,2,1,1,5,2},输出其中出现次数最多且数值最大的字符,并显示其出现次数。
请问这题改怎么做呢?麻烦大家帮我解答下,谢谢哦
存储次数用一个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);
}
}
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
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);
} }
由于不方便测试,没有实际测试,若有问题可以贴处理
东营哪有交画涂鸦的? |
女朋友快生日了送什么礼物 |
兔子咬了要打狂犬疫苗吗? |
国家队足球鞋 |
什么食物最酸? |
杜仲可以和鸡一起煲吗 |
Linux网络连接标志断开 |
网上汇款的问题 |
网队除了哈里斯外还有什么核心啊 |
dnf二级密码怎么设置 |
“包天下”餐饮加盟项目是否真实? |
密码箱密码不小心乱了打不开怎么办,谁有好办法? |
梦幻诛仙里鬼王怎么加点。。 |
英语最少日记 |
QQ三国现在好玩吗 |