Мне нужно разбить строку на слова, а после проверить, сходятся ли 1-я и последняя буква слова.
Проблема в том, что слово выходит с цикла после 1 раза, ссылаясь на то что, оно выходит за длину. Помогите, не понимаю, как сделать, чтобы оно прошло.
Пишет, что проблема вот в этой строке:if(substr1.charAt(indexOfSpace) == substr1.charAt(nextIndexOfSpace-1))
int indexOfSpace = 0;
int nextIndexOfSpace = 0;
StringBuffer sentence = new StringBuffer("thit mom wow sentenc");
int length = sentence.length();
int lastIndexOfSpace = sentence.lastIndexOf(" ");
nextIndexOfSpace = sentence.indexOf(" ",indexOfSpace);
String substr1 = sentence.substring(indexOfSpace,nextIndexOfSpace);
do
{
//checking words algorithm
if(substr1.charAt(indexOfSpace) == substr1.charAt(nextIndexOfSpace-1))
{
System.out.println("WORD IS CORRECT");
System.out.println(substr1);
}
else
System.out.println("NO");
indexOfSpace = nextIndexOfSpace;
nextIndexOfSpace = sentence.indexOf(" ",indexOfSpace);
}
while(indexOfSpace != lastIndexOfSpace);
if(indexOfSpace == lastIndexOfSpace)
{
//the last word check
if(sentence.charAt(lastIndexOfSpace+1) == sentence.charAt(length-1))
{
System.out.println(sentence.charAt(lastIndexOfSpace+1));
System.out.println(sentence.charAt(length-1));
System.out.println("last word ");
}
}
Можно упростить код, если через split слова получить:
String text = "thit mom wow sentenc";
for (String word : text.split(" ")) {
if (word.charAt(0) == word.charAt(word.length() - 1)) {
System.out.println("WORD IS CORRECT: " + word);
} else {
System.out.println("WORD IS NOT CORRECT: " + word);
}
}
Результат:
WORD IS CORRECT: thit
WORD IS CORRECT: mom
WORD IS CORRECT: wow
WORD IS NOT CORRECT: sentenc
Проблема в том что вы обращаетесь к подстроке substr1, а индексы ищите в sentence.
if(sentence.charAt(indexOfSpace) == sentence.charAt(nextIndexOfSpace-1))
Еще одна проблема в
nextIndexOfSpace = sentence.indexOf(" ",indexOfSpace);
должно быть
nextIndexOfSpace = sentence.indexOf(" ",indexOfSpace + 1);
Продвижение своими сайтами как стратегия роста и независимости