这是一个家庭作业,我已经被困了一段时间了。任务是使用循环来确定最长的单词是什么。在我的脑海中,逻辑似乎运行良好,但不知何故,输出总是坚持字符串中单词的倒数第二个长度。例如,如果我输入'tom cook'作为textboi,输出返回3,尽管所需的输出应该是4。蒂娅!!
public static void longboi(String textBoi)
{
int lengthCounter = 0;
int final = 0;
int textLength = textBoi.length();
for (int i = 0; i < textLength; i++)
{
String indexValue = Character.toString(textBoi.charAt(i));
if(" ".equals(indexValue) || indexValue.equals(textBoi.charAt(textBoi.length()-1))) //if current index == space or last value of textBoi do this
{
if (lengthCounter > final) //if the lengthCounter is greater than the value you have right now, do this
{
final = lengthCounter;
lengthCounter = 0;
}
else //if not, reset counter
{
lengthCounter = 0;
}
}
else //otherwise, keep on counting
{
lengthCounter = lengthCounter + 1;
System.out.print(lengthCounter);
}
}
System.out.println("this is output: " + final); //print out answer
}
1条答案
按热度按时间oxf4rvwz1#
你得到了错误的结果,因为如果这个条件
当到达字符串中的最后一个字符时,如果当前计数不是“”,则需要递增当前计数,并且仅在此之后与当前最大长度进行比较。
另外,请阅读有关调试器以及如何在java中使用它们的内容。一旦你学会了,你就能自己轻松地解决这些问题。