【发布时间】:2016-06-20 23:42:52
【问题描述】:
我是 Java 初学者,收到了创建 indexOf 方法副本的作业,该方法接收字符串作为参数。我必须检查收到的字符串是否是原始字符串的子字符串,如果是,我必须返回它的索引。例如:如果原始字符串是“mother”,str ==“other”将返回 1。如果 str 不是子字符串,则返回 -1。我必须只使用 String 类的 length() 和/或 charAt() 方法来创建它。
我坚持了很长时间。我尝试了多种代码,但没有成功...
例如:
public int myIndexOf1(String str)
{
String objectStr = this._st;
Word w3 = new Word(objectStr);
Word w4 = new Word(str);
char[] array = w3.toCharacterArray();
int firstShowIndex = 0;
int length = array.length;
int max = objectStr.length() - str.length();
for (int index = 0; index < max; index++)
{
for (int indexSubstring = 0; indexSubstring < str.length(); indexSubstring++)
{
if (objectStr.charAt(index) == str.charAt(indexSubstring))
{
firstShowIndex = index;
break;
}
else
firstShowIndex = -1;
}
}
return firstShowIndex;
}
请帮忙! 提前致谢!
【问题讨论】:
-
好吧,首先摆脱
w3、w4和array。接下来,想想那个内部循环应该做什么。它应该比较str的所有 个字符与objectStr的开始于index的字符,即objectStr.charAt(index + indexSubstring) == str.charAt(indexSubstring)。内部循环的结果应该是一个布尔值,表明 所有 个字符是否匹配。如果是,则返回index的值。如果外部循环退出,则未找到匹配项,因此返回-1。看看这是否能让你走上正确的道路。
标签: java arrays string indexof