上周遇到的一道Java面试题:
统计字符串中出现最多和最少的次数:
代码如下:
package pack.java.demo;
import java.util.Collections;
import java.util.Map;
import java.util.TreeMap;
/**
* 统计字符串中出现最多或最少的次数;
* @author zhouhaitao
* 2012-2-12
*/
public class CountString {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
CountString countString = new CountString();
countString.countString("eabcdssasbccdddddsesssaaa");
}
/**
* 统计字符串出现最多的个数;
* @return
*/
private void countString(String str){
Map<String,Integer> map = new TreeMap<String, Integer>();
int count = 0;
if(str!=null && !"".equals(str.trim())){
//根据字符串长度循环;
for(int i = 0;i<str.length();i++){
count = 0;
String tempString = str.substring(i, i+1);
for(int x = 0;x<=i;x++){
if(tempString.equals(str.substring(x, x+1))){
count++;
}
}
map.put(tempString, count);
}
}
int max = Collections.max(map.values());
int min = Collections.min(map.values());
System.out.println("字符串中出现最多的次数是:"+max+"次,出现最少的次数是:"+min+"次");
}
}
输出结果:
字符串中出现最多的次数是:7次,出现最少的次数是:2次