import java.util.Scanner;
//这是我的代码
public class Demo8 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入第一个字符串:");
String str1 = s.nextLine();
System.out.println("请输入第二个字符串:");
String str2 = s.nextLine();
System.out.println("请输入两个字符串:");
int index = find(str1,str2);
System.out.println("str2在str1中的位置为:"+index);
}
public static int find(String str1,String str2){//接收两个字符串
int index = 0;//主串从下标0开始第一趟匹配
int i = 0,j = 0;设置比较的起始下标
char[] arr1 = str1.toCharArray();//转换成字符数组
char[] arr2 = str2.toCharArray();
while(arr1[i]!='\0' && arr2[j]!='\0'){
if(arr1[i]==arr2[j]){
i++;
j++;
}else{
index++;
i = index;//i,j分别回溯
j = 0;
}
}
if(arr2[j]=='\0'){
return index+1;//返回本趟匹配的开始位置(不是下标)
}
return -1;
}
}
高手请帮我看一下!ArrayIndexOutOfBoundsException
java实现BF算法求一个字符串在另一个字符串中的位置出现空指针异常:
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答
- 姜某人 2017-09-14 01:53关注
这不是C语言,!='\0'在Java中是不规范的~
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥100 c语言,请帮蒟蒻写一个题的范例作参考
- ¥15 名为“Product”的列已属于此 DataTable
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)