1 package com.zhidi.tool;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.Random;
6
7 /**
8 * 随机生成字符串或数字
9 * @author Administrator
10 *
11 */
12 public class RandomDemo {
13
14 /*
15 * 随机生成一条字符串,长度通过参数传入
16 */
17 public static String getString(int len){
18
19 String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
20 Random ran = new Random();
21 StringBuffer sb = new StringBuffer();
22
23 for (int i = 0; i < len; i++) {
24 char ch = str.charAt(ran.nextInt(str.length()));
25 sb.append(ch);
26 }
27
28 return sb.toString();
29 }
30
31 /*
32 * 随机生成字符串,长度不固定
33 */
34 public static String getString(){
35
36 String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
37 Random ran = new Random();
38 StringBuffer sb = new StringBuffer();
39 int len = ran.nextInt(10)+1;
40 for (int i = 0; i < len; i++) {
41 char ch = str.charAt(ran.nextInt(str.length()));
42 sb.append(ch);
43 }
44
45 return sb.toString();
46 }
47
48 /*
49 * 随机生成n条字符串,返回List<String>集合
50 */
51 public static List<String> getStringList(int len){
52 List<String> list = new ArrayList<String>();
53
54 for (int i = 0; i < len; i++) {
55 String str = getString();
56 list.add(str);
57 }
58
59 return list;
60 }
61
62
63
64 }
1 package com.zhidi.tool;
2
3 import java.util.Collections;
4 import java.util.HashMap;
5 import java.util.HashSet;
6 import java.util.Map;
7 import java.util.Map.Entry;
8 import java.util.Set;
9
10 public class ForString {
11
12
13 /*
14 * 清除重复字符,返回字符串
15 */
16
17 public String getString(String str){
18 Set<Character> s = new HashSet<Character>();
19 char[] ch = str.toCharArray();
20 for (char c : ch) {
21 s.add(c);
22 }
23 StringBuffer sb = new StringBuffer();
24
25 for (char c : s) {
26 sb.append(c);
27 }
28
29 return sb.toString();
30 }
31
32 /*
33 * 返回重复的字符串
34 */
35 public String getCFString(String str){
36 Set<Character> s = new HashSet<Character>();//清除重复的字符串
37 Set<Character> s2 = new HashSet<Character>();//存放重复的字符串
38 char[] ch = str.toCharArray();
39 for (char c : ch) {
40 boolean b = s.add(c);
41 if(!b){
42 s2.add(c);
43 }
44 }
45
46 StringBuffer sb = new StringBuffer();
47 for (char c : s2) {
48 sb.append(c);
49 }
50
51 return sb.toString();
52 }
53
54 /*
55 * 返回不重复的字符串
56 */
57 public String getNoCF(String str){
58 Set<Character> s = new HashSet<Character>();//清除重复的字符串
59 Set<Character> s2 = new HashSet<Character>();//存放重复的字符串
60 Set<Character> s3 = new HashSet<Character>();//存放不重复的字符串
61 char[] ch = str.toCharArray();
62 for (char c : ch) {
63 boolean b = s.add(c);
64 if(!b){
65 s2.add(c);
66 }
67 }
68
69 s3.addAll(s);
70 s3.removeAll(s2);
71
72 StringBuffer sb = new StringBuffer();
73 for (char c : s3) {
74 sb.append(c);
75 }
76
77 return sb.toString();
78 }
79
80 /*
81 * 返回Map集合,统计字符串中每个字符出现的次数
82 */
83 public Map<Character,Integer> getStringNum(String str){
84 char[] ch = str.toCharArray();
85 Map<Character,Integer> map = new HashMap<Character,Integer>();
86 System.out.println(str);
87 for (char c : ch) {
88 if(map.containsKey(c)){
89 Integer i = map.get(c);
90 i++;
91 map.put(c, i);
92 }else{
93 map.put(c, 1);
94 }
95 }
96 return map;
97 }
98
99
100
101 }
1 package com.zhidi;
2
3 import java.util.Collections;
4 import java.util.List;
5 import java.util.Map;
6 import java.util.Scanner;
7 import java.util.Set;
8
9 import com.zhidi.tool.ForString;
10 import com.zhidi.tool.RandomDemo;
11
12 public class Test {
13
14 public static void main(String[] args) {
15
16 // List<String> list = RandomDemo.getStringList(10);
17 //
18 // Collections.sort(RandomDemo.getStringList(10));
19 // for (String s : list) {
20 // System.out.println(s);
21 // }
22 ForString fs = new ForString();
23 Scanner sc = new Scanner(System.in);
24
25 System.out.println("请输入一条字符串:");
26 String str = sc.next();
27 System.out.println(str);
28 Map<Character, Integer> map = fs.getStringNum(str);
29 System.out.println("------------------");
30 Set<Character> s = map.keySet();
31 for (Character c : s) {
32 Integer i = map.get(c);
33 System.out.println(c+"出现了"+i+"次");
34 }
35
36 }
37
38 }