如何在Java中打印字符串中最长的单词而不使用数组和循环
目前,我能够找出如何显示最长的字长。然而,有没有一种方法可以使用循环来确定最长的单词并将其打印出来
public static void longestWordCalculator(String rawText)
{
int lengthCounter = 0;
int finalCounter = 0;
int textLength = rawText.length();
for (int i = 0; i < textLength ; i++)
{
String indexValue = Character.toString(rawText.charAt(i));
if(!" ".equals(indexValue))
{
lengthCounter++;
}
else
{
finalCounter = Math.max(finalCounter, lengthCounter);
lengthCounter = 0;
}
}
System.out.println("Final Value: " + Math.max(finalCounter, lengthCounter));
}
# 1 楼答案
我保留你的代码,不使用数组。以下是更新代码:
希望能有所帮助
# 2 楼答案
使用^{} 和^{} 以及
while
循环。比如# 3 楼答案
这个解决方案很灵活,它可以打印出所有最长的单词,而不是一个
我鼓励你理解代码,尽管正如你所说,这是一项任务
# 4 楼答案
按空格字符拆分文本,并找到最长的单词。试试这个代码
输入:“看起来不错”
输出:最长单词是[word=looks,WordLength=5,WordIndex=1]
# 5 楼答案
发布的两个答案很好,我会使用它们,但是如果您想保留当前的实现并避免数组等,可以在使用^{保存新的最长长度时保存当前最长字符串的开头位置。最后,将
rawText
中的子字符串从longestIndex
打印到longestIndex + finalCounter
编辑-试试这样
# 6 楼答案
以下是一个没有拆分的解决方案:
输出: