Java 读单词直到用户写下';结束';,然后,按字典顺序排列(如在字典中),显示最后一个单词

Java 读单词直到用户写下';结束';,然后,按字典顺序排列(如在字典中),显示最后一个单词,java,string,lexicographic,Java,String,Lexicographic,用户将输入单词,直到最后一个单词是“end”,然后代码必须按字典顺序排列,正如我们在字典中所做的那样,在“end”之前输入的所有单词,并打印最后一个单词,即最后一个被分类的单词 // Scanner word = new Scanner (System.in); String keyword="end"; String finalstring; String[] firststring= new String[1000]; //Don't know how to

用户将输入单词,直到最后一个单词是“end”,然后代码必须按字典顺序排列,正如我们在字典中所做的那样,在“end”之前输入的所有单词,并打印最后一个单词,即最后一个被分类的单词

//

    Scanner word = new Scanner (System.in);
    String keyword="end";
    String finalstring;

    String[] firststring= new String[1000]; //Don't know how to stablish a //dynamic string[] length, letting the user stablish the string[].length  
    for(int c=0;c<firststring.length;c++){
        firststring[c]=word.next();
        if(firststring[c].equals(keyword)){
            finalstring=firststring[c].substring(0,c);
            c=cadena.length-1; //To jump out of the for.
        }
    }
    for (int c=0;c<finalstring.length();c++) {
        for(int i=c+1;i<finalstring.length();i++) {
            if (firststring[c].compareTo(firststring[i])>0) {
                String change = firststring[c];
                firststring[c] = firststring[i];
                firststring[i] = change;
            }
        }
    }
    System.out.print("\nYou entered "end" and the last word classified is "+finalstring[finalstring.length()-1]); //Of course, error here, just did it to put one System.out.print of how should the result be.
}
Scanner word=新扫描仪(System.in);
字符串关键字=“结束”;
弦末弦;
String[]firststring=新字符串[1000]//不知道如何建立//动态字符串[]长度,让用户建立字符串[]。长度
对于(int c=0;c
不知道如何建立动态字符串[]长度,让用户建立字符串[]。长度

没有必要这么做,但下面是方法

方法#1:让用户给你一个数字,然后像这样分配数组:

String[] strings = new String[theNumber];
警告:要求没有规定允许您这样做,您可能会因为偏离要求而失去分数

方法2:使用
ArrayList
累积单词列表,使用list.toArray从列表内容创建一个数组。(阅读javadocs for list来计算。)


当然,这里有一个错误,只是把一个System.out.print的结果打印出来

是的。一个问题是
长度
是1000,但数组中没有1000个实际字符串。同样的问题也会影响早期的代码。请考虑一下


我不会修改你的代码来让它工作。我已经给了你足够的提示,让你自己去做。如果你准备投入努力的话


还有一个提示:你可以/应该使用
break
来打破第一个循环。

我知道有些单词不是用英语写的,而是用加泰罗尼亚语写的,但是代码可以完全理解,昨天我终于编好了这个答案:

public static void main(String[] args) {
    Scanner entrada= new Scanner(System.in);
    System.out.println("Escriu les paraules que vulguis, per acabar, usa la paraula 'fi'.");
    String paraules = "";
    int c=0;
    do {
        String paraula = entrada.next();
        if (paraula.equals("fi")) {
            c++;
        } else {
            if (paraula.compareTo(paraules) > 0) {
                paraules = paraula;
            }
        }
    } while (c==0);
    System.out.println("L'última parala ordenada alfabèticament és "+paraules+".\n");
}
}