下面是总结的一些常见问题,以供大家参考
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+"次");
}
}