今天我训练时,如标题所示的题目困扰我很久,由于题目必须要求使用indexOf,所以做这个题目要先弄懂indexOf,我对indexOf的理解是对于string的查找,格式是indexOf(你要查找的类容),如果string有你要查找的类容,输出下标位置,如果没有就输出-1。
如下图
可是我发现,如果string里有多个查找目标的话,则只输出第一个目标的下标,知道第一个然后将indexOf改位置查找。
格式为indexOf(查找目标,从那个位置开始找)
如下图
知道indexof的原理后,所以这个题,我用是思路是,用一个循环来自动帮我做刚刚手动输入位置的操作。
如下所示
a来记录 进入循环的次数(满足条件的次数)
b来记录 第一次查找的下标位置
以我这个随手截的这个图来看,第9行开始判断第一次是否有目标字母,如果有进入循环,没有就进不了循环,a为记录次数加1,b为更改判断位置加1,第13行找下一个位置,如果有再次进入循环,没有就进不了循环而跳出循环
public class zuoye {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int a=0;
System.out.println("请输入一串字符");
String str=input.next();
System.out.println("请输入你要找的什么字母的次数:");
String car=input.next();
int b=str.indexOf(car);
while (b>=0) {
b++;
a++;
b=str.indexOf(car,b);
System.out.println(b);//这行可以删除的 这里显示的是每次进入循环的目标的下标
}
System.out.println("指定字符串在原字符串中出现:"+a+"次");
}
}
我今天刚刚注册了这个CSDN博客,写这个博客的意图是,一个是把CSDN当做载体为我以后考试复习使用,第二个我知道CSDN博客里面有很多大佬,我很希望有大佬给我这个小萌新纠出错误,每有一次我没发现的错误对我都是一笔财富,我对此感激不尽,第三个我认为我有这方面的困惑的话,那么大家一定有一些人会有跟我一样的困惑,我希望我的博客可以提供给像我一样的萌新一些想法的帮助。
今天也要努力加油呀~~