我試圖找出用戶輸入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