黑马程序员技术交流社区
标题:
求各位大神帮我看看
[打印本页]
作者:
漫步人
时间:
2013-10-29 00:00
标题:
求各位大神帮我看看
本帖最后由 漫步人 于 2013-10-29 11:16 编辑
循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印
package itcast.com;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class StringSort {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
Scanner scanner = new Scanner(System.in);
String temp = scanner.nextLine();
while (!temp.equals("end")) {
list.add(temp);
temp = scanner.nextLine(); //不加这句就报异常,加了就不知道是什么意思了
}
Collections.sort(list); // 按字典序正序排序
Collections.reverse(list); // 再将列表翻转 ,可是没有翻转啊!
for (String str : list) {
System.out.println(str);
}
}
}
作者:
cuilitang
时间:
2013-10-29 10:54
package itcast.cn;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class StringSort {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
Scanner scanner = new Scanner(System.in);
String temp = null;
System.out.println("请输入要反向排序的值,值之间请用回车符分割:"); //搞个提示
while (!"end".equals(temp)) { //要用确认的值去equals不确认的值,不然null去调用equals就出现“java.lang.NullPointerException”,空指针异常了
temp = scanner.nextLine(); //需要将temp加入到循环中来,不然的话,只有第一次的值能存储到temp中,因为第二次没接受到值,用null去调equals肯定要报空指针异常
list.add(temp);
}
Collections.sort(list); // 按字典序正序排序
Collections.reverse(list); //是你录入的问题,nextline是接收一行,你一直录入不敲回车,实际上程序是接收了一个元素,没什么好反转的,你要敲入一个元素,敲一下回车,这样就能反转了
for (String str : list) {
System.out.println(str);
}
}
}
复制代码
细节决定成败,兄弟,你细节把关不严啊....
作者:
cuilitang
时间:
2013-10-29 10:58
package itcast.cn;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class StringSort {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
Scanner scanner = new Scanner(System.in);
String temp = null;
System.out.println("请输入要反向排序的值,值之间请用回车符分割:"); //搞个提示
while (!"end".equals(temp)) { //要用确认的值去equals不确认的值,不然null去调用equals就出现“java.lang.NullPointerException”,空指针异常了
temp = scanner.nextLine(); //需要将temp加入到循环中来,不然的话,只有第一次的值能存储到temp中,因为第二次没接受到值,用null去调equals肯定要报空指针异常
list.add(temp);
}
Collections.sort(list); // 按字典序正序排序
Collections.reverse(list); //是你录入的问题,nextline是接收一行,你一直录入不敲回车,实际上程序是接收了一个元素,没什么好反转的,你要敲入一个元素,敲一下回车,这样就能反转了
for (String str : list) {
System.out.println(str);
}
}
}
/**
* 1.你用null去equals,肯定要报空指针,一定要闹清楚哪些东西该放进循环体里,可以自己先分析一下
* 2.nextline是接收一行,貌似你没闹明白这一点,结果怎么敲都是一个元素,情何以堪
*/
复制代码
作者:
cuilitang
时间:
2013-10-29 23:15
为什么没有人给我加技术分?{:soso_e118:}
作者:
落木萧萧
时间:
2013-10-30 10:56
cuilitang 发表于 2013-10-29 23:15
为什么没有人给我加技术分?
云7就一个版主,加分慢很正常的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2