题目
28. 实现strStr()
题解
代码
import java.util.*;
public class code28 {
public static int strStr(String haystack, String needle) {
int len1 = haystack.length();
int len2 = needle.length();
if (len1 < len2) {
return -1;
} else if (len2 == 0) {
return 0;
}
int i = 0, j = 0;
while (i < len1 && j < len2) {
if (haystack.charAt(i) == needle.charAt(j)) {
i++;
j++;
} else {
i = i - j + 1;
j = 0;
}
if (j == len2) {
return i - j;
}
}
return -1;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入haystack字符串: ");
String haystack = sc.nextLine();
System.out.print("请输入needle字符串: ");
String needle = sc.nextLine();
int ans = strStr(haystack, needle);
System.out.println(ans);
}
}
参考
- 三种方法——题解一
- 内置函数就不写了,来个暴力破解,思路比较简单——题解二
- Java Scanner 类
- java–Scanner类的用法(next()和nextLine()的区别)
- java中scan.next()与scan.nextline()函数的使用与区别
- Scanner的next,nextint和nextLine的使用总结
- Java中next()方法与nextLine()的区别
- Java indexOf() 方法
- Java中indexof()的用法
- JAVA中的字符串的indexOf函数 和substring
- Java中字符串indexof() 的使用方法