import java.util.Scanner;
public class ceshi{
public static void main(String args[]){
Scanner scanner = new Scanner(System.in);
String stra = scanner.nextLine().toLowerCase();
String strb = scanner.nextLine().toLowerCase();
int flg = 0;
for (int i=0;i<stra.length();i++) {
char s = stra.charAt(i);
if(s == strb.charAt(0) ) {
flg++;
}
}
System.out.print(flg);
}
}
看代码,问题比较大的是,占用内存大。
思路:首先把他们大小写转化的一样,然后将字符串化为字符,这个用charAt();会自动转化,直接用这个方法取某个下标的值就可以,然后循环对比判断即可。
强调:很多人的想法是用replace(x,y)这个方法,直接将B(要判断是否存在的值)进行替换为空,然后求大小,想减得结果,这是不可以的,值得注意的是,这个方法的参数要求是两个字符,所以在这不适用。
知识点补充:
将String转化为Char
char[] one = str.toCharArray();
这就是将字符串拆成字符放置到数组中。
你也可以直接用charAt(x);这个方法,
char a = str.CharAt(0);
表示获取字符串str中第一位字符。(我认为可以看做这个方法以及直接将字符串转化为了字符)