读书人

不用indexOf这个api判断字符串中是否

发布时间: 2012-01-30 21:15:58 作者: rapoo

求助:不用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("中国足球,何日出头",","));;    }} 

读书人网 >J2SE开发

热点推荐