Java练习题

1、取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...

 1 import java.util.Iterator;
 2 import java.util.Map;
 3 import java.util.Map.Entry;
 4 import java.util.Set;
 5 import java.util.TreeMap;
 6 
 7 public class Test1 {
 8     public static void main(String[] args){
 9         String str ="abcdekka27qoq";
10         System.out.println(charCount(str));
11     }
12     public static String charCount(String str){
13         char[] chs = str.toCharArray();
14         Map<Character,Integer> m = new TreeMap<Character,Integer>();
15         int count =0;
16         for(int x=0;x<chs.length;x++){
17             if(chs[x]>='a'&&chs[x]<='z'||chs[x]>='A'&&chs[x]<='Z'){
18                 Integer value = m.get(chs[x]);
19                 if(value!=null)
20                     count=value;
21                 count++;
22                 m.put(chs[x], count);
23                 count =0;
24             }
25         }
26         StringBuilder sb =new StringBuilder();
27         Set<Map.Entry<Character,Integer>> s = m.entrySet(); 
28         Iterator<Entry<Character, Integer>> it =s.iterator();
29         while(it.hasNext()){
30             Map.Entry<Character, Integer> me =it.next();
31             sb.append(me.getKey()+"("+me.getValue()+")");
32         }
33         return sb.toString();
34         
35     }
36 }

 2.根据上排给出的十个数,在其下排填出对应的十个数,要求下排每个数都是上排十个数在下排出现的次数

 1 /*
 2  
 3 根据上排给出的十个数,在其下排填出对应的十个数,要求下排每个数都是上排十个数在下排出现的次数
 4  
 5 */
 6  
 7 class GetNextArray
 8  
 9 {
10  
11         public static void main(String[] args) 
12         {
13  
14                 //System.out.println("Hello World!");
15  
16                 int[] arr1={0,1,6,3,5,4,2,7,8,9};
17  
18                 int[] arr2=new int[arr1.length];
19  
20                 for(int y=0;y<arr1.length;y++)
21  
22                 {
23  
24                         for (int x=0;x<arr1.length ;x++ )
25  
26                         {
27  
28                                 int a=getCount(arr1[x],arr2);
29  
30                                                 
31                                 if(arr2[0]==0)
32  
33                                         arr2[0]=a-1;
34  
35                                 else
36  
37                                         arr2[x]=a;                                                
38                         }
39  
40                 }
41  
42                 printArray(arr1);
43  
44                 System.out.println();
45  
46                 printArray(arr2);
47  
48         }
49  
50         //获得每个元素在数组中出现的次数
51  
52         public static int getCount(int key,int[] arr)
53  
54         {
55  
56                 int count=0;
57  
58                 for (int x=0;x<arr.length ;x++ )
59  
60                 {
61  
62                         if (key==arr[x])
63  
64                                 count++;                        
65                 }
66  
67                 return count;
68  
69         }
70  
71         //打印数组        
72         public static void printArray(int[] arr)
73  
74         {
75  
76                 for (int x=0;x<arr.length ;x++ )
77  
78                 {
79  
80                         if(x!=arr.length-1)
81  
82                                 System.out.print(arr[x]+",");
83  
84                         else
85  
86                                 System.out.print(arr[x]);
87  
88                 }
89  
90         }
91  
92 }
93  
原文地址:https://www.cnblogs.com/malinkang/p/2568587.html