本帖最后由 ゞSunペ果果つ 于 2013-4-19 07:17 编辑
- import java.util.*;
- public class Test14
- {
- public static void main(String []args){
- String str=StringTool.containString("ahellodsaf");
- System.out.println(str);
- StringTool.StringCount(str);
- }
- }
- class StringTool
- {
- public static String containString(String s2){
- String s1="sdfg,hellozx,sdfcv-waadfa,fsasdfxcvdf";
- String xs=null;
- flag:
- for(int i=0;i<s1.length();i++){
- for(int start=0,end=s1.length()-i;end!=s1.length()+1;start++,end++){
- String temp=s1.substring(start,end);
- if(s2.contains(temp)){
- //System.out.println(temp);
- xs=s1.substring(0,start)+""+s1.substring(end,s1.length());
- //System.out.println(xs);
- break flag;
- }
- }
- }
- return xs;
- }
- public static void StringCount(String str){
-
- char []a=str.toCharArray();
- Map<Character,Integer> map=new HashMap<Character,Integer>();
- for(int i=0;i<a.length;i++){
- if(a[i]>'a'&&a[i]<'z'||a[i]>'A'&&a[i]<'Z'){
- if(map.containsKey(a[i])){
- int temp=map.get(a[i]);
- temp+=1;
- map.put(a[i],temp);
- }else{
- map.put(a[i],1);
- }
- }
- }
-
- StringBuilder sb=new StringBuilder();
- //这一块想实现排序,可是我又理解Map.Entry<String,Integer>不是很深刻,所以处理起来有问题了
- //下面这段被我注释的代码有问题,求高手指点,那里修改后,就可以正常输出排序后的结果
- /*List<Map.Entry<String,Integer>> list=new ArrayList<Map.Entry<String,Integer>>();
- list.addAll(map.entrySet());
- Collections.sort(list,new Comparator<Map.Entry<String,Integer>>(){
- public int compare(Map.Entry<String,Integer> o1,Map.Entry<String,Interger> o2){
- return o1.getValue()-o2.getValue();
- }
- });
- System.out.println(list);
- */
-
- Set<Map.Entry<Character,Integer>> entryset=map.entrySet();
- Iterator<Map.Entry<Character,Integer>> it=entryset.iterator();
- while(it.hasNext()){
- Map.Entry<Character,Integer>ch=it.next();
- Character key=ch.getKey();
- Integer value=ch.getValue();
- sb.append(key+"("+value+")");
- }
- System.out.println(sb);
- }
- }
复制代码 自己写了2个小时多,就能写到现在这样,就是想实现
f(出现6次)d(出现5次)s(出现4次)x(出现2次)v(出现2次)c(出现2次)w(出现1次)g(出现1次)
这样一个顺序,就是在对里面value进行排序的时候有点疑惑,就是处理不好Comparator等一些排序的问题。感觉是不是逻辑思路有问题?重点问题是注释的代码,其他地方我明白 |