String)给定一个字符串判断该字符串中是否包含某个子串如果包含求出子串的所有出现位置,注:字符串和子串均由用户输入

题目

(String)给定一个字符串判断该字符串中是否包含某个子串如果包含求出子串的所有出现位置 如:"abcd23abc34bcd"中,"bc"子串的出现位置为:1,7,11。字符串和子串均由用户输入

import java.util.Scanner;

/** 
* @author Ziph
* @date 2020年3月5日
* @Email [email protected]
*/
public class TestGetString {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("请输入一个字符串:");
		String str1 = sc.nextLine();
		System.out.print("请输入要查询的子串:");
		String str2 = sc.nextLine();
		int head = 0;
		while (true) {
			//indexOf——返回指定字符第一次出现的字符串内的索引
			int i = str1.indexOf(str2, head);
			//找不到返回-1,循环结束
			if (i == -1) {
				break;
			}
			//打印找到的值(下标)
			System.out.print(i + " ");
			//第一次head=0,从0开始找,之后head变为下标i+要找字符串的长度
			//应该从这里开始查找该子串,不加长度会出问题的!
			head = i + str2.length();
		}
	}
}

在这里插入图片描述

发布了89 篇原创文章 · 获赞 146 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_44170221/article/details/104681719