如何使用数组和仅字符串来按字母顺序排列单词?

时间:2013-10-05 18:02:20

标签: java if-statement alphabetized

这是我迄今为止所拥有的。但是我需要在不使用数组的情况下按字母顺序排列所有四个单词,并且只使用带有if和else语句的字符串。

    import java.util.Scanner;

public class Dictionary
{
    public static void main (String[] args)
    {
        String word1, word2, word3, word4;
        Scanner scan = new Scanner (System.in);

        System.out.println ("Enter Four Words: ");
        word1 = scan.next();
        word2 = scan.next();
        word3 = scan.next();
        word4 = scan.next();

        int compare = word1.compareTo(word2);

        if (compare < 0)
        {System.out.println(word1 + " " + word2);}
    else if (compare > 0)
        {System.out.println(word2 + " " + word1);}           
    }
}

3 个答案:

答案 0 :(得分:0)

看起来你有一个合理的基础 - 你正在比较正确的字符串和一切。不过,为了让跟踪变得更容易,我会在开始比较之前使用StringBuilder来保存已排序的字符串,并在完成所有必要的比较之后使用append()为其添加单词。给定的话。

按照你要完成的事情 - 关键是如果你不能使用任何类型的集合,你只需要将每个字符串与所有其他字符串进行比较。您可能希望将一些额外的if / elses嵌套在您拥有的内容中。

答案 1 :(得分:0)

您还可以使用字符串列表并对其进行排序:

List<String> listOfWords = new LinkedList<String>();
listOfWords.add(word1);
listOfWords.add(word2);
listOfWords.add(word3);
listOfWords.add(word4);

Collections.sort(listOfWords, new Comparator<String>() {
    public int compare(String o1, String o2) {
        return o1.compareTo(o2);
    }
});

答案 2 :(得分:0)

如何使用Java为您提供的功能:

public static void main(String[] args) {
  final PriorityQueue<String> words = new PriorityQueue<String>();
  final Scanner scan = new Scanner(System.in);

  System.out.println("Enter Four Words: ");
  for (int i = 0; i < 4; ++i) {
    words.add(scan.next());
  }

  while(words.isEmpty() == false) {
    System.out.println(words.poll());
  }
}

不确定这是否能回答你的问题?