-4

用户将输入单词,直到最后写入的单词是“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.
}

}

这是我尝试过的,但是,没有任何成功,你的任何帮助都会有很大的帮助,谢谢大家!

4

2 回答 2

0

不知道如何建立一个动态的 string[] 长度,让用户建立 string[].length

没有必要这样做。但这里是如何。

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

String[] strings = new String[theNumber];

警告:要求并没有说你可以这样做,你可能会因为偏离要求而失去分数。

方法#2:使用 anArrayList来累积单词列表,使用 List.toArray 从列表内容创建一个数组。(阅读 javadocs 以了解列表。)


当然,这里出错了,只是为了放一张System.out.print的结果应该怎么样。

是的。一个问题是length1000,但数组中没有 1000 个实际字符串。同样的问题也会影响您之前的代码。想想是...


我不会修复您的代码以使其正常工作。我已经给了你足够的提示让你自己去做。如果你准备好付出努力。

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

于 2015-02-28T04:47:02.187 回答
0

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

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");
}

}

于 2015-02-28T19:07:13.880 回答