I have to find the last word in a string and can’t understand why my code isn’t working. This is what I have:
int i, length;
String j, lastWord;
String word = "We the people of the United States in order to form a more perfect union";
length = word.length();
for (i = length - 1; i > 0; i--)
{
j = word.substring(i, i + 1);
if (j.equals(" ") == true);
{
lastWord = word.substring(i);
System.out.println("Last word: " + lastWord);
i = -1; //to stop the loop
}
}
However, when I run it, it prints the last letter. I know I could use
String lastWord = word.substring(word.lastIndexOf(” “) + 1)
But I’m pretty sure my teacher doesn’t want me to do it this way. Any help?
You need to remove the
;after theifto make it work:You do not need
== truefor booleans inside control statements, either.Finally, making single-character substrings is more expensive than using single characters. Consider using
charAt(i)instead: