Java短字符串在长字符串中出现的次数
分析:
1String类中利用subString截取字符串进行判断
首先给大家介绍一下 String类中的 subString()方法
语法:
public String substring(int beginIndex)
或
public String substring(int beginIndex, int endIndex)
//beginIndex -- 起始索引(包括), 索引从 0 开始。
//endIndex -- 结束索引(不包括)
实例:
public static void main(String args[]) {
String Str = new String("www.runoob.com");
System.out.print("返回值 :" );
System.out.println(Str.substring(4) );
System.out.print("返回值 :" );
System.out.println(Str.substring(4, 10) );
}
以上执行结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201219104804785.png)
解题思路
第一步:输入字符串(用nextLine)
next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串。
nextLine():
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个长的字符串");
String a=sc.nextLine();
System.out.println("请输入一个短的字符串:");
String b=sc.nextLine();
2用循环语句在里面进行判断
要点: 循环次数为从长字符串第一个数开始比较到最后长度只剩短字符串的长度
for (int i = 0; i <=(a.length()-b.length()) ; i++)
比较过程: 利用equals()和substring()方法
b.equals(a.substring(i,i+b.length()))
附上完整代码:
public static void main(String[] args) {
//2.编写一个程序,让用户先后输入两个字符串,一个长的,一个短的,
// 例如:“how do you do”和“do”;然后输出短的那个字符串在长的字符串中出现的次数。
Scanner sc = new Scanner(System.in);
System.out.println(“请输入一个长的字符串”);
String a=sc.nextLine();
System.out.println(“请输入一个短的字符串:”);
String b=sc.nextLine();
int c=0;
for (int i = 0; i <=(a.length()-b.length()) ; i++) {
if(b.equals(a.substring(i,i+b.length()))){
c++;
}
}
System.out.println("出现次数为:"+c);
}
以上执行结果: