两种方法,但是内存占用都很大,还有需要优化的地方

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;
	}
}