В настоящее время я работаю над проектом для класса, чтобы создать класс TextLine, представляющий строку текста, которая должна быть представлена в виде массива символов. Мне не разрешено представлять объект TextLine, используя класс строки косвенно или напрямую, однако я могу использовать его для работы с параметрами.
Для одного из методов я должен принять строку в качестве аргумента параметра, который также является фрагментом объекта TextLine, а затем вернуть позицию индекса первого вхождения фрагмента в этой TextLine. или -1, если фрагмент не найден.
Сейчас я пытаюсь выяснить метод indexOf, но моя проблема в том, что мой метод проверяет только начальную точку один раз. Поэтому, если буква объекта TextLine не совпадает с буквой фрагмента в первый раз, но есть другое совпадение где-то еще в объекте, метод не проверяет эту начальную точку.
Например, допустим, я ввожу игру с пером в качестве TextLine, а затем я играю в качестве фрагмента. Ясно, что в TextLine происходит воспроизведение, но мой метод indexOf выполняет то, что он проверяет первый p из penplay с индексом 0, а затем продолжает видеть, соответствуют ли следующие буквы длительности воспроизведения, и если он нет, он возвращает -1. Любая идея, как я мог позволить алгоритму продолжать искать другую отправную точку?
Вот что у меня есть для моего кода:
public int indexOf(String fragment){
char[] temp = fragment.toCharArray();
int j = 0;
for(int i = 0; i < someText.length; i++){
while(someText[i] == temp[j]){
for(j = 1; j < temp.length; j++){
if(temp[j] != someText[i+j]){
return -1;
}
}
return i;
}
}
return -1;
}