【发布时间】:2022-01-05 09:06:23
【问题描述】:
public int lookFor(String s) {
final int EXIST = 1;
final int NOT_EXIST = -1;
int thisIndex = 0;
int otherIndex = 0;
char thisNext;
char otherNext;
if (s == null || s.length() == 0)
return NOT_EXIST;
for(; thisIndex < this.mainString.length() ; ) {
thisNext = this.mainString.charAt(thisIndex);
otherNext = s.charAt(otherIndex);
if (thisNext == otherNext) {
thisIndex++;
otherIndex++;
}
else if (thisNext != otherNext)
thisIndex++;
if (otherIndex == s.length()-1)
return EXIST;
}
return NOT_EXIST;
}
这是我目前的尝试。
mainString = 我要在其中找到子字符串的主字符串。 s = 子字符串。
所以我的想法是获取两个字符串的第一个字符,看看它们是否相等。如果他们不这样做,我会得到 mainString 的第二个字符,看看它们是否相等(mainString 第二个字符到第一个字符)。如果它们不相等,我将得到 mainString 的第三个字符,依此类推。一旦它们相等,我将获取两个字符串的下一个字符并查看它们是否相等。
基本上,当 s 的索引等于 s 长度减一时,循环知道 mainString 包含 s(这意味着循环一直循环到 s 的最后一个字符 inc,因此 s 索引 == s 长度 -1)。
我尝试使用的逻辑是否不正确?或者我只是执行它不好?我很乐意得到答案!
【问题讨论】:
-
所以您尝试使用除您自己之外的任何方法?喜欢不使用 indexOf 方法?
标签: java string loops substring