package teststring;
public class Main {
public static void main(String[] args) {            String str1,str2;
int j=0;
int count=0;
System.out.println("请输入str1");
str1 = string.readString(); System.out.println("请输入str2");
str2 = string.readString();
for(j=0;j<str1.length();j++)
                {
                 if( str1.indexOf(str2, j) == 0)
                 {
                 count++;
                    }
} if(count!=0)
{System.out.println("str2是str1的子串");
System.out.println("str2在str1中出现了"+count+"次");
}
else
System.out.println("str2不是str1的子串"  );
} }运行结果是这个:run:
请输入str1
asasassaa
请输入str2
aa
str2不是str1的子串
成功生成(总时间:8 秒)

解决方案 »

  1.   

    str1.indexOf(str2, j) == 0直接 str1.indexOf(str2)如果有就返回是第几个 如果没有就返回-1
      

  2.   

    小弟运行le一下,可是为什么找不到readStrin方法ne?
      

  3.   

    System.out.println("请输入str1");
    str1 = string.readString();System.out.println("请输入str2");
    str2 = string.readString();这是啥呀???
      

  4.   

    小小的调整了一下
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;public class Main {
    public static void main(String[] args) throws IOException {
    //here
    BufferedReader systemin = new BufferedReader(new InputStreamReader(System.in));
    String str1, str2;
    int j = 0;
    int count = 0;
    System.out.println("请输入str1");

    str1 = systemin.readLine(); System.out.println("请输入str2");
    str2 = systemin.readLine(); for (j = 0; j < str1.length(); j++) {
    if (str1.startsWith(str2, j)) {//here
    count++;
    }
    } if (count != 0) {
    System.out.println("str2是str1的子串");
    System.out.println("str2在str1中出现了" + count + "次");
    } else
    System.out.println("str2不是str1的子串"); }}
    以下是输出
      

  5.   

    请输入str1
    bbacdeac
    请输入str2
    ac
    str2是str1的子串
    str2在str1中出现了2次
      

  6.   

    请问大侠: string.readString()这个方法是怎么回事?你的程序怎么实现接受键盘上输入的字符串?应该建一个  BufferedReader in = new BufferedReader(new  InpurStreamReader(System.in));
    try{     
      String s = in.readLine();
    }catch(IOException e(){};
      

  7.   

    把这个判断if( str1.indexOf(str2, j) == 0)换成if( str1.indexOf(str2, j) == j)就OK了没那么麻烦。
    因为str1.indexOf(str2, j)它返回的不是从j开始时的索引,而是str2在str1中的位置,所以每次找到结果不是0。
    举个例子:str1="abcdHH"; str2="HH"; 而用str1.indexOf(str2, 4)得出的结果还是4是在str1中的位置,而不是0。
      

  8.   

    System.out.println("请输入str1");
    str1 = string.readString();System.out.println("请输入str2");
    str2 = string.readString();
    老兄   这可是错误啊?
    你的怎么能运行出结果呢?