我试图找出用户输入s
是否包含使用for循环和if语句的第二个用户输入s1
。我只想使用方法.charAt()
和.length
而不是.indexOf
来查找s1是否在s内。一旦找到s
是否包含s1
,我要么返回.charAt()
,其中s1
开始于s
,要么返回-1
,如果s1
完全不在s
内部发生。如何在Java中使用for循环在字符串中查找字符串?
例如,s = abcdefghi
& s1 = def
,它将返回3
。
这是我到目前为止的代码: 它要么返回0
或-1
package javaapplication5;
import java.util.Scanner;
class myStrings {
String s, s1;
void setMyStrings(String str, String str1) {
s = str;
s1 = str1;
}
int find() {
int i, j;
int r = -1;
char ns = s1.charAt(0);
int sp;
int count = 1;
for (i = 0; i < s.length(); i++){
if (s.charAt(i) == ns) {
sp = i;//starting point
for (j = i+1; j < s1.length(); j++) {
ns += 1;
if (s.charAt(j) == ns){
j++;
count++;
}
if (count == s1.length())
r = sp;
}
}
}
System.out.println(r);
return r;
}
}
public class JavaApplication5 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
myStrings setS = new myStrings();
String s, s1;
System.out.print("Enter s:");
s = in.nextLine();
System.out.print("Enter s1:");
s1 = in.nextLine();
setS.setMyStrings(s1, s1);
setS.find();
}
}
即使在C中,这也是错误的,因为当内部循环无法找到字符串时,您没有重新初始化ns。 – Tyco