我正在尝试使用 for 循环和 if 语句查找用户输入是否s
包含第二个用户输入。s1
我只想使用方法.charAt()
而.length
不是.indexOf
查找 s1 是否在 s 内。一旦我找到是否s
包含s1
,我要么想返回.charAt()
where s1
begin in s
,要么返回-1
如果s1
根本没有出现 inside s
。
例如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();
}
}