簡體   English   中英

嘗試使用Java按字母順序對用戶輸入進行排序,為什么此代碼不起作用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM