Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不使用数组且仅使用字符串的情况下按字母顺序排列单词?_Java_If Statement_Alphabetized - Fatal编程技术网

Java 如何在不使用数组且仅使用字符串的情况下按字母顺序排列单词?

Java 如何在不使用数组且仅使用字符串的情况下按字母顺序排列单词?,java,if-statement,alphabetized,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 (Syste

这就是我到目前为止所拥有的。但我需要对所有四个单词按字母顺序排列,而不使用数组,只使用带有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);}           
    }
}
import java.util.Scanner;
公共类词典
{
公共静态void main(字符串[]args)
{
字符串word1、word2、word3、word4;
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入四个字:”);
word1=scan.next();
word2=scan.next();
word3=scan.next();
word4=scan.next();
int compare=word1.compareTo(word2);
如果(比较<0)
{System.out.println(word1+“”+word2);}
否则如果(比较>0)
{System.out.println(word2+“”+word1);}
}
}

> p>看起来你有一个合理的基础-你正在比较字符串和一切。不过,为了便于跟踪,我会制作一个
StringBuilder
,用于在开始比较之前保存已排序的字符串,并在对给定单词进行了所有必要的比较之后,使用
append()
向其中添加单词


不过,请遵循您必须完成的操作-关键是如果您不能使用任何类型的集合,您只需将每个字符串与所有其他字符串进行比较。您可能希望在现有的内容中嵌套一些额外的if/else。

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

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);
    }
});
listOfWords=newlinkedlist();
添加(word1);
添加(word2);
添加(word3);
添加(word4);
Collections.sort(listOfWords,newcomparator(){
公共整数比较(字符串o1、字符串o2){
返回o1。与(o2)相比;
}
});

如何使用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());
  }
}
publicstaticvoidmain(字符串[]args){
final PriorityQueue words=new PriorityQueue();
最终扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入四个字:”);
对于(int i=0;i<4;++i){
words.add(scan.next());
}
while(words.isEmpty()==false){
System.out.println(words.poll());
}
}

不确定这是否回答了您的问题?

您需要更多的比较和if语句。要理解这一点:是什么阻止你使用排序列表或数组?