下面是總結的一些常見問題,以供大家參考
- 第一次出現重複字符
- 出現的重複字符
- 出現字符串、字符還有次數
- 出現次數最多的字符及次數
class Eclass{
public static void main(String[] args) {
String str = "eeeejwurihewweafa";
Eclass e = new Eclass();
//問題一
int index = e.Method(str);
String result = str.charAt(index)+"";
System.out.println(result);
//問題二
List<Character> list = e.douMethod(str);
for (Character c :list
) {
System.out.println(c+"\t");
}
//問題三
e.stringCount(str);
//問題四
e.maxString(str);
}
//第一次出現重複字符
public int Method(String str){
int index=-1;
int length=str.length();
for (int i=0;i<length;i++){
char c = str.charAt(i);
//在str中從i+1開始檢索,如果c存在,返回第一個c的下標,如果不存在返回-1
if ((str.indexOf(c,i+1))!=-1){
index=i;
break;
}
}
return index;
}
//出現的重複字符
public List<Character> douMethod(String str){
int index=-1;
int length=str.length();
List list = new ArrayList();
for (int i=0;i<length;i++){
char c = str.charAt(i);
//在str中從i+1開始檢索,如果c存在,返回第一個c的下標,如果不存在返回-1
if ((str.indexOf(c,i+1))!=-1){
index=i;
//判斷集合中是否存在
if (!list.contains(c))
list.add(c);
}
}
return list;
}
//出現字符串、字符還有次數
public void stringCount(String str){
Map<Character,Integer> map = new HashMap<>();
for (int i= 0; i<str.length();i++){
if (map.get(str.charAt(i))!=null){
map.put(str.charAt(i),map.get(str.charAt(i))+1);
}else {
map.put(str.charAt(i),1);
}
}
System.out.println(map);
}
//出現次數最多的字符的次數
public void maxString(String str) {
Map<Character, Integer> map = new HashMap<>();
int max = 0; //出現最多的次數
String maxCha=""; //次數最多的字符
for (int i = 0; i < str.length(); i++) {
if (map.get(str.charAt(i)) != null) {
map.put(str.charAt(i), map.get(str.charAt(i)) + 1);
} else {
map.put(str.charAt(i), 1);
}
}
for (Character c: map.keySet()
){
if (map.get(c)>max){
max=map.get(c);
maxCha=c+"";
}else {
max=max;
}
}
System.out.println("出現最多的字符:"+maxCha+",出現了"+max+"次");
}
}