[英]Trying to sort user input into alphabetical order with Java, why won't this code work?
由於某些原因,當我嘗試向用戶詢問名稱時,可以將其添加到列表中並按字母順序對其進行排序,因此該代碼不會打印出任何內容。 它甚至不會通過while循環,有人知道這個問題是什么嗎? 還有另一個問題; 如果在詢問輸入值時用戶按下Enter按鈕,如何執行某些代碼,它是否為null? 謝謝!
import java.util.Scanner;
import java.util.*;
public class project16u
{
public static void main(String[] args)
{
int n;
String input = "nothing";
String temp;
ArrayList<String> names = new ArrayList<String>();
Scanner s1 = new Scanner(System.in);
System.out.println("Enter all the names:");
while(!input.equals("done")){
input = s1.nextLine();
names.add(input);
}
for (int i = 0; i < names.size()-1; i++)
{
if (names.get(i).compareTo(names.get(i+1))>0)
{
temp = names.get(i);
names.add(i, names.get(i+1));
names.add(i+1, temp);
i=0;
}
}
System.out.print("Names in Sorted Order:");
for (int i = 0; i < names.size() - 1; i++)
{
System.out.print(names.get(i).toString() + ",");
}
System.out.print(names.get(names.size()-1));
}
}
add
在請求的索引處插入名稱。 因此,根據您的情況,列表中將有兩個相同名稱的副本,而不是您想要的副本。
您可能想使用set
代替。
您可能需要將循環條件更改為
s1.hasNextLine()&&!input.equals(“ done”)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.