(String) 给定一个字符串,判断该字符串张是否包含某个字串。
如果包含,求出字串的所有出现位置。
如:"abcd23abc34bcd"中,"bc"字串的出现位置为:1,7,11.字符串和字串均由用户输入
public class Demo13 {
public static void main(String[] args) {
System.out.println("请输入原始字符串:");
String string = new Scanner(System.in).next();
// 输入字符串
System.out.println("请输入需要比较的字符串:");
String str1 = new Scanner(System.in).next();
stringMethod(string,str1);
stringMethodTwo(string,str1);
}
// 方法一
private static void stringMethod(String string,String str1) {
// 示例字符串
int d = - 1;
String str="";
str1 = str1.trim();
if(string.indexOf(str1)==-1) {
System.out.println("不存在相同字符串");
}else {
for (int i = 0; i < string.length(); i++) {
if(string.lastIndexOf(str1) == string.indexOf(str1,d)) {
break;
} else {
d = string.indexOf(str1,d+1) ;
str += d + ",";
}
}
}
System.out.println(str.replaceAll(",$",""));
}
// 方法二
private static String stringMethodTwo(String a,String b) {
StringBuffer sb = new StringBuffer();
int c = -1;
for(int y=0; y<a.length(); y++)
{
c = a.indexOf(b,c+1);
if(c ==-1)
{
break;
}else{
sb.append(c+" ");
}
}
return sb.toString();
}
}