【发布时间】:2016-03-29 18:29:17
【问题描述】:
我最近开始学习计算机科学课程以进一步了解编程,并且似乎在我们的 ArrayLists 实验室遇到了障碍。该程序的目的是将x个字符串放入一个ArrayList中,然后按降序输出结果。
例如:斑马、鹿、长颈鹿 鹿
结果:长颈鹿、斑马、鹿
我在网上四处查看,发现了一些使用 ArrayList 比较器的示例,但我们的教授希望我们通过过滤掉最大的单词、打印它、删除它然后继续循环直到打印出所有单词来做到这一点。
到目前为止,这是我的代码:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int length = 0;
String longest = "";
String currentWord = "";
ArrayList <String> DescendArray = new ArrayList<String>();
System.out.println("What would you like to add to the list?");
String userInput = input.next();
while(!userInput.equals("d"))
{
DescendArray.add(userInput);
userInput = input.next();
}
for (int i=0; i < DescendArray.size(); i++)
{
if (DescendArray.get(i).length() > longest.length())
{
currentWord = DescendArray.get(i);
if (currentWord.length() > longest.length())
{
longest = currentWord;
length = longest.length();
}
}
for (int j=1; j < DescendArray.size() -1 ; j++)
{
if (DescendArray.get(j - 1).length() > longest.length())
{
DescendArray.remove(j - 1);
}
System.out.println(longest + " " + length);
}
}
}
}
我假设我的错误在内部循环中的某个地方,但无论我使用多少不同的变体,我似乎都无法让它工作。
【问题讨论】:
-
“我假设我的错误出现在内部循环中” - 错误是什么?是不编译,抛出异常,还是给出不正确的结果?
-
代码编译正常,下面是输入输出示例: 输入:Giraffe, Hippo, Zebra 输出:Giraffe, Giraffe, Giraffe
-
是否需要删除重复的单词?在您的示例中,鹿只在输出中写入一次。
标签: java for-loop arraylist while-loop