给定一个字符串“today is a special day”,长度任意,要求找出其出现次数最多的字符及计算次数。老师说让自己看帮助文档,charactor,表示看不懂
思路:
1、将当前的字符串转换为字符数组;
2、创建一个HashMap,key为每一个字符,value为字符出现的字数;
3、遍历当前的数组,将数组中每一个不重复的字符作为HashMap对象中的key,判断当前的HashMap对象中是否存在当前的key
1)若存在,取出对应的value,将value值加1后,再保存到对应的key上;
2)若不存在,则将当前的key值对应的value赋值为1;
4、遍历统计结束的HashMap对象,取出所有key中value最大的对象即可;
代码如下:
public static void main(String[] args) {
String string = "Thinking in Java";
char[] ch = string.toCharArray();
Map result = new HashMap();
for (int i = 0; i < ch.length; i++) {
if (result.containsKey(ch[i])) {
int count = result.get(ch[i]) + 1;
result.put(ch[i], count);
} else {
result.put(ch[i], 1);
}
}
Character maxChar = null;
Integer maxCount = 0;
for (Entry entry : result.entrySet()) {
if (entry.getValue() > maxCount) {
maxChar = entry.getKey();
maxCount = entry.getValue();
}
}
System.out.println("字符: " + maxChar + " 出现的字数最多,为 " + maxCount + " 次");
}
希望对你有帮助!
这个简答呀。只要字符吗?a b c这样的字符。
你就用个类extends HashMap
class A {
private HashMap map = new HashMap();
public void put() {
// 在这里面,去判断map中是否有出现的字符,如果第一次出现,则放进去,次数为1
// 如果已经出现了,则把次数取出来,然后+1再放进去
}
}
然后写个main函数,去读取你的字符串,一个个字符丢进你的类里面去做判断和运算。这样你可以得到所有的字符及出现次数,排个序取最高的就可以了。
创建字典Dictionary<字符,出现次数>,遍历字符串,若字典未加入遍历的字符,增加入<字符,1>,否则<字符,n++>,最后找出字典了最大的N即可
这个直接用hashmap,需要写这么多行代码么?
char【256】,char[string[i]-'0'],类似这种打点法
String str = "slfjslfjsf";
Map resultMap = new HashMap();
for(int i=0;i Character a = str.charAt(i);
Integer count = resultMap.get(a);
count=count==null?1:++count;
resultMap.put(a,count);
int most =0;Character ch = null;
for(Character s : resultMap.keySet()){
if(resultMap.get(s) > most){
most = resultMap.get(s);
ch=s;
}
}
System.out.println("字符串中出现次数最多的是:"+ch+" 出现次数:"+most);
}
List<String> key = new ArrayList<>();
List<Integer> value = new ArrayList<>();
String s = "asdsdasssdss";
for (int i = 'A'; i <= 'z'; i++) {
if(s.contains(String.valueOf(((char)i)))){
int count = 0;
while (true) {
if (s.contains(String.valueOf(((char)i)))) {
count++;
s = s.replaceFirst(String.valueOf(((char)i)), "");
} else {
break;
}
}
if(count != 0){
key.add(String.valueOf((char)i));
value.add(count);
}
}
}
int temp = 0;
int location =0 ;
if(key.size()>0){
temp = value.get(0);
}
for(int i = 0;i<value.size();i++){
if(temp<value.get(i)){
temp = value.get(i);
location = i;
}
}
if(key.size()>0){
System.out.println(key.get(location)+","+value.get(location));
}
Map<String, Integer> gpp=new HashMap<>();
for(int i=0;i<a.length;i++){
if(gpp.get(a[i])==null)
{
gpp.put(a[i], 1);
}
else gpp.put(a[i], gpp.get(a[i])+1);
}
System.out.println(gpp);
}
}