首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

不用indexOf这个api,判断字符串中是否含有指定字符串

2012-01-30 
求助:不用indexOf这个api,判断字符串中是否含有指定字符串利用字符数组判断……我编写的是import java.util.

求助:不用indexOf这个api,判断字符串中是否含有指定字符串
利用字符数组判断……我编写的是
import java.util.Scanner;
public class Chazhao
{
  public static boolean chazhao(String str1,String str2)
  {
  char[] a = str1.toCharArray();
  char[] b = str2.toCharArray();
  int L1 = str1.length();
  int L2 = str2.length();
  for (int i = 0;i <= L1; i++)
  {
for (int j = 0;j <= L2 ; j++ )
{
int k = i + j;
if (b[j] == a[k] && j== L2)
{
return true;
}
if (b[j] == a[k] || j != L2)
{
continue;
}
if (b[j] != a[k])
{
break;
}
}
if (i == L1-L2)
{
return false;
}
}
  return false;
  }
  public static void main(String[] args)
  {
  System.out.println("请输入原始字符串");
  Scanner input1 = new Scanner(System.in);
  String str1 = input1.nextLine();
  System.out.println("请输入要查找的字符串");
  Scanner input2 = new Scanner(System.in);
  String str2 = input2.nextLine();
boolean h = chazhao(str1,str2);
  if (h)
  {
System.out.println(str1 + "中含有" + str2);
  }
else
  {
System.out.println(str1 + "中没有" + str2);
}
  }

}

可以编译,不能运行……
拜求高手告诉我,逻辑哪里有错误……或者写个类似的……
我刚学习java 3周……

[解决办法]
这是我刚写的,你看看顶用么,我也没完全地测试可能有bug

Java code
import java.util.Scanner;public class Chazhao{    /**     *     * @param str1     str1表示被查询的序列     * @param str2     str2表示查询的序列     * @return     */    public static boolean chazhao(String str1,String str2){        boolean result=false;        char[] a = str1.toCharArray();        char[] b = str2.toCharArray();        int L1 = str1.length();        int L2 = str2.length();        if(L2>L1) return false;        for (int i = 0;i < L1; i++){           if(a[i]==b[0]&&i<=(L1-L2)){//寻找第一个匹配索引               System.out.println("第一个匹配索引"+i);               boolean flag=true;                for(int j=0;j<L2;j++){                    if(b[j]!=a[i+j]){                        flag=false;                        continue;                    }                    if(j==(L2-1)&&flag){ //遍历b字符数组,每个对匹配对应a的字符                        //说明存在匹配的序列                        return true;                    }                }           }        }        return false;    }    public static void main(String[] args){//        System.out.println("请输入原始字符串");//        Scanner input1 = new Scanner(System.in);//        String str1 = input1.nextLine();//        System.out.println("请输入要查找的字符串");//        Scanner input2 = new Scanner(System.in);//        String str2 = input2.nextLine();//        boolean h = chazhao(str1,str2);//        if (h)//        {//            System.out.println(str1 + "中含有" + str2);//        }//        else//        {//            System.out.println(str1 + "中没有" + str2);//        }        System.out.println(""+chazhao("中国足球,何日出头",","));;    }} 

热点排行