读取单词直到用户写入 'end',然后,按字典顺序(如在字典中)排序,显示最后一个单词
Read words until user writes 'end', then, order lexicographically(as in a dictionary), show the last word
用户将输入单词,直到最后写的单词是 "end",然后代码必须按字典顺序排序,就像我们在字典中一样,所有在 'end' 之前输入的单词并打印最后一个word,分类在最后一个。
//.......
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.
}
}
这是我尝试过的方法,但是没有任何成功,您的任何帮助将是一个很大的帮助,谢谢大家!
Don't know how to stablish a dynamic string[] length, letting the user establish the string[].length
没有必要这样做。但方法是这样的。
方法#1:让用户给你一个数字,然后像这样分配数组:
String[] strings = new String[theNumber];
警告:要求并没有说你可以这样做,如果偏离要求,你可能会被扣分。
方法#2:使用ArrayList
来累积单词列表,使用List.toArray 从列表内容创建数组。 (阅读列表的 javadocs 来解决它。)
Of course, error here, just did it to put one System.out.print of how should the result be.
是的。一个问题是 length
是 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");
}
}
用户将输入单词,直到最后写的单词是 "end",然后代码必须按字典顺序排序,就像我们在字典中一样,所有在 'end' 之前输入的单词并打印最后一个word,分类在最后一个。
//.......
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.
}
}
这是我尝试过的方法,但是没有任何成功,您的任何帮助将是一个很大的帮助,谢谢大家!
Don't know how to stablish a dynamic string[] length, letting the user establish the string[].length
没有必要这样做。但方法是这样的。
方法#1:让用户给你一个数字,然后像这样分配数组:
String[] strings = new String[theNumber];
警告:要求并没有说你可以这样做,如果偏离要求,你可能会被扣分。
方法#2:使用ArrayList
来累积单词列表,使用List.toArray 从列表内容创建数组。 (阅读列表的 javadocs 来解决它。)
Of course, error here, just did it to put one System.out.print of how should the result be.
是的。一个问题是 length
是 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");
}
}