Товарищи, если не лень можете чекнуть мой код и сказать, почему не пропускает решение? Вывод, по крайней мере с этим конкретным примером, правильный
P.S.сорян за кривой код - решал в идее и скопировал решение, не сдвинув необходимые пробелы
Если что вот в нормальном виде))
public class Lesson03 {
public static int getIndexFromFirstWord(String string, String word) {
int index = string.indexOf(word);
if (index == -1) {
return index;
}
while (true) {
if (index > 0 && (string.charAt(index - 1) == '\u0020') && (!Character.isLetter(string.charAt(index + word.length())))) {
break;
} else if ((index == 0) && (!Character.isLetter(string.charAt(index + word.length())))) {
break;
} else {
index = string.indexOf(word, index + word.length());
}
}
return index;
}
public static int getIndexFromLastWord(String string, String word) {
int index = string.lastIndexOf(word);
if (index == -1) {
return index;
}
while (true) {
if (index > 0 && (string.charAt(index - 1) == '\u0020') && (!Character.isLetter(string.charAt(index + word.length())))) {
break;
} else if ((index == 0) && (!Character.isLetter(string.charAt(index + word.length())))) {
break;
} else {
int temp = index;
index = string.substring(0, temp).lastIndexOf(word);
}
}
return index;
}
}
package com.javarush.task.pro.task09.task0913;
/*
Поиск в строке
*/
public class Solution {
public static void main(String[] args) {
String string = "Чтобы стать программистом, нужно писать код. Чтобы писать код, нужно учиться. Чтобы учиться, нужно желание.";
String word = "код";
int indexFromFirstWord = getIndexFromFirstWord(string, word);
int indexFromLastWord = getIndexFromLastWord(string, word);
System.out.println("Индекс первого символа первого слова \"" + word + "\" равен - " + indexFromFirstWord);
System.out.println("Индекс первого символа последнего слова \"" + word + "\" равен - " + indexFromLastWord);
}
public static int getIndexFromFirstWord(String string, String word) {
int index = string.indexOf(word);
if (index == -1) {
return index;
}
while (true) {
if (index > 0 && (string.charAt(index - 1) == '\u0020') && (!Character.isLetter(string.charAt(index + word.length())))) {
break;
} else if ((index == 0) && (!Character.isLetter(string.charAt(index + word.length())))) {
break;
} else {
index = string.indexOf(word, index + word.length());
}
}
return index;
}
public static int getIndexFromLastWord(String string, String word) {
int index = string.lastIndexOf(word);
if (index == -1) {
return index;
}
while (true) {
if (index > 0 && (string.charAt(index - 1) == '\u0020') && (!Character.isLetter(string.charAt(index + word.length())))) {
break;
} else if ((index == 0) && (!Character.isLetter(string.charAt(index + word.length())))) {
break;
} else {
int temp = index;
index = string.substring(0, temp).lastIndexOf(word);
}
}
return index;
}
}