import java.util.ArrayList;
public class Test {
public static void findChar(String str) {
if (str == null || str.length() == 0) {
System.out.println("str is null or empty");
System.out.println("-----------------------");
return;
}
ArrayList<Character> list = new ArrayList<Character>(str.length());
for (int i = 0; i < str.length(); i++) {
if (!list.contains(str.charAt(i))) {
list.add(str.charAt(i));
}
}
int[] count = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
char mid = (Character) list.get(i);
for (int j = 0; j < str.length(); j++) {
if (mid == str.charAt(j)) {
count[i]++;
}
}
}
int index = 0;
int max = count[0];
for (int i = 0; i < count.length; i++) {
if (max < count[i]) {
max = count[i];
index = i;
}
}
for (int k = 0; k < list.size(); k++) {
System.out.print(list.get(k) + " ");
}
System.out.println();
System.out.println("char = " + list.get(index));
System.out.println("count = " + count[index]);
System.out.println("-----------------------");
}
public static void main(String[] args) {
findChar("ABAACGDHGSTHJHH");
findChar(null);
findChar("");
findChar("ABAACGDHGSTHJHHSDDSJAHDASHJ");
findChar("ABAACGDHGSTHJHHDSADADSAHH");
}
}
注意:
这里有个小bug,两个字符同时有最多次数的情况并没有处理。