47 lines
1.8 KiB
Java
47 lines
1.8 KiB
Java
package com.inmind.string01;
|
|
|
|
import java.util.Scanner;
|
|
|
|
/*
|
|
|
|
2.字符串查找。 【scanner indexOf 不停地找,直到找不到为止(死循环) index+1找】
|
|
键盘录入一个大字符串,再录入一个小字符串。
|
|
统计小字符串在大字符串中出现的次数。
|
|
*/
|
|
public class Test06 {
|
|
public static void main(String[] args) {
|
|
//键盘录入一个大字符串,再录入一个小字符串。
|
|
Scanner sc = new Scanner(System.in);
|
|
System.out.println("请输入一个长字符串:");
|
|
String longStr = sc.nextLine();
|
|
System.out.println("请输入一个短字符串:");
|
|
String shortStr = sc.nextLine();
|
|
int count = getCount(longStr, shortStr);
|
|
System.out.println("小字符串在大字符串中出现的次数为:"+count);
|
|
}
|
|
|
|
//统计小字符串在大字符串中出现的次数。
|
|
public static int getCount(String longStr, String shortStr) {
|
|
int count = 0;//统计出现的次数
|
|
|
|
//public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引,如果找不到是-1
|
|
//分析:也就是indexOf方法,查找shortStr,返回-1就是找不到了,就结束查询了
|
|
int index = 0;//记录每次查找子字符串的索引,便于下一次查找(循环条件的参数)
|
|
/*while (index != -1) {
|
|
index = longStr.indexOf(shortStr,index);
|
|
if (index != -1) {
|
|
//下一次查找就得从index+1开始
|
|
index++;
|
|
count++;
|
|
}
|
|
}*/
|
|
|
|
while ((index = longStr.indexOf(shortStr,index)) != -1) {//将index的赋值与判断放在一起同时作为循环条件
|
|
//下一次查找就得从index+1开始
|
|
index++;
|
|
count++;
|
|
}
|
|
return count;
|
|
}
|
|
}
|