您的位置:首页 > 其它

练习:字符串中字符出现次数

2014-04-09 17:13 190 查看
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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: