中国星星

向往自由的空气/灿烂的阳光/轻柔的风……

 

找出重複次數最多的字元

 1import java.util.*;
 2
 3@SuppressWarnings("unchecked")
 4public class Test
 5{
 6
 7    // 找出重複次數最多的字元,並列印出數量和字元
 8    public static void main(String[] args)
 9    {
10        String a = "aaabbdcfeeswdfttrrccaa";
11        List ls = new LinkedList();
12        Test test = new Test();
13        for (int i = 0; i < a.length(); i++)
14        {
15            if (!test.isHave(ls, (a.charAt(i) + "")))
16            {
17                ls.add(a.charAt(i) + "");
18            }

19        }

20        // 保存相應的位置的字母的個數
21        int[] ret = new int[ls.size()];
22        // 最大數
23        int max = 0;
24        for (int i = 0; i < ls.size(); i++)
25        {
26            ret[i] = test.getNum(ls.get(i).toString(), a);
27            if (ret[i] > max)
28            {
29                max = ret[i];
30            }

31        }

32        // 檢查個數最大的,返回位置列表
33        List ls2 = new LinkedList();
34        for (int i = 0; i < ret.length; i++)
35        {
36            if (ret[i] == max)
37            {
38                ls2.add(i + "");
39            }

40        }

41
42        // 遍曆ls2,列印出相應字母和個數
43        System.out.println("\n列印出個數最多的字母及個數:");
44        for (int i = 0; i < ls2.size(); i++)
45        {
46            int m = Integer.parseInt(ls2.get(i).toString());
47            System.out.println("字母:" + ls.get(i).toString() + "   個數:" + ret[m]);
48        }

49
50        System.out.println("\n列印出所有字母及個數:");
51        for (int i = 0; i < ret.length; i++)
52        {
53            System.out.println("字母:" + ls.get(i).toString() + "   個數:" + ret[i]);
54        }

55    }

56
57    // 查詢該列表 ls 是否有該字元
58    private boolean isHave(List ls, String k)
59    {
60        boolean flag = false;
61        for (int i = 0; i < ls.size(); i++)
62        {
63            if (ls.get(i).toString().equals(k))
64            {
65                flag = true;
66                break;
67            }

68        }

69        return flag;
70    }

71
72    // 查詢 a 中有幾個 k
73    private int getNum(String k, String a)
74    {
75        int j = 0;
76        for (int i = 0; i < a.length(); i++)
77        {
78            if ((a.charAt(i) + "").equals(k))
79            {
80                j++;
81            }

82        }

83        return j;
84    }

85}

86

posted on 2008-05-19 13:27 Jesin 阅读(158) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(1)

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜