两种方法,但是内存占用都很大,还有需要优化的地方
public class Main{
public static void main(String[] args){ Scanner sc = new Scanner(System.in);
String str1 = sc.nextLine();
String str2 = sc.nextLine();
System.out.println(countNum(str1,str2));
}
public static int countTimes(String str1,String str2){
Map<Character,Integer> map = new HashMap<>();
for(int i=0;i<str1.length();i++){
char ch = str1.charAt(i);
if(ch>='A' && ch<='Z'){
ch += 'a'-'A';
}
if(!map.containsKey(ch)){
map.put(ch, 1);
}
else{
map.put(ch, map.get(ch)+1);
}
}
char ch = str2.charAt(0);
if(ch>='A' && ch<='Z'){
ch += 'a'-'A';
}
if(!map.containsKey(ch)){
return 0;
}
else{
return map.get(ch);
}
}
public static int countNum(String str1,String str2){
if(!str1.contains(str2))return 0;
char ch1 = str2.charAt(0);
int count = 0;
char ch2;
for(int i=0;i<str1.length();i++){
ch2 = str1.charAt(i);
if(ch1 == ch2 ||(ch2<='Z'&& ch2>='A' && ch2+'a'-'A'==ch1) ||(ch1<='Z'&& ch1>='A' && ch2-('a'-'A')==ch1)){
count++;
}
}
return count;
}
}