package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
public class test {
@Test
public void test() {
String a = "g454g5f==5s4g a4gsgs6ghy jjty=fdsgaijl、fgaoiqp-mgjs shhhkf ";
String str = this.countMaxChar(a);
Map<Character, Integer> map = this.countChar(a);
sortByMapValue(map);
System.out.println(str);
System.out.println(map.toString());
}
//顾名思义:按map的value排序输出
public void sortByMapValue(Map<Character, Integer> map) {
List<Map.Entry<Character, Integer>> list = new ArrayList<Map.Entry<Character, Integer>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Character, Integer>>() {
public int compare(Map.Entry<Character, Integer> o1, Map.Entry<Character, Integer> o2) {
return (o2.getValue()).compareTo(o1.getValue());
}
});
for (int i = 0; i < list.size(); i++) {
String id = list.get(i).toString();
System.out.println(id);
}
}
//获取字符串出现次数最多的字母
public String countMaxChar(String str) {
str = str.replace(" ", "");
char[] data = str.toCharArray();
int maxCount = 0;
char maxChar = 0;
for (char ch:data) {
int count = 0;
for(char c:data){
if(ch==c){
count++;
}
}
if (count > maxCount) {
maxCount = count;
maxChar = ch;
}
}
return maxChar + ":" + maxCount;
}
//获取字符串中每个字符出现的次数
public Map<Character,Integer> countChar(String str){
str = str.replace(" ", "");
char [] data = str.toCharArray();
Map<Character,Integer> map = new HashMap<>();
for(char ch:data){
Integer i = map.get(ch);
if (i == null) {
map.put(ch, 1);
} else {
map.put(ch, i.intValue() + 1);
}
}
return map;
}
}
练习:字符串中字符出现次数
最新推荐文章于 2021-03-22 18:18:40 发布