A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 漫步人 中级黑马   /  2013-10-29 00:00  /  1486 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 漫步人 于 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);

}

}

}


评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

4 个回复

倒序浏览
  1. package itcast.cn;

  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.List;
  5. import java.util.Scanner;

  6. import java.util.ArrayList;

  7. import java.util.Collections;

  8. import java.util.List;

  9. import java.util.Scanner;

  10. public class StringSort {

  11.         public static void main(String[] args) {
  12.        
  13.                 List<String> list = new ArrayList<String>();
  14.                
  15.                 Scanner scanner = new Scanner(System.in);
  16.                
  17.                 String temp = null;
  18.                 System.out.println("请输入要反向排序的值,值之间请用回车符分割:");        //搞个提示
  19.                
  20.                 while (!"end".equals(temp)) {  //要用确认的值去equals不确认的值,不然null去调用equals就出现“java.lang.NullPointerException”,空指针异常了
  21.                        
  22.                         temp = scanner.nextLine();   //需要将temp加入到循环中来,不然的话,只有第一次的值能存储到temp中,因为第二次没接受到值,用null去调equals肯定要报空指针异常
  23.                         list.add(temp);
  24.                        
  25.                        
  26.                
  27.                 }
  28.                
  29.                 Collections.sort(list); // 按字典序正序排序

  30.                 Collections.reverse(list);    //是你录入的问题,nextline是接收一行,你一直录入不敲回车,实际上程序是接收了一个元素,没什么好反转的,你要敲入一个元素,敲一下回车,这样就能反转了
  31.                
  32.                 for (String str : list) {
  33.                
  34.                         System.out.println(str);
  35.        
  36.                 }
  37.        
  38.         }

  39. }
复制代码
细节决定成败,兄弟,你细节把关不严啊....
回复 使用道具 举报
  1. package itcast.cn;

  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.List;
  5. import java.util.Scanner;

  6. import java.util.ArrayList;

  7. import java.util.Collections;

  8. import java.util.List;

  9. import java.util.Scanner;

  10. public class StringSort {

  11.         public static void main(String[] args) {
  12.        
  13.                 List<String> list = new ArrayList<String>();
  14.                
  15.                 Scanner scanner = new Scanner(System.in);
  16.                
  17.                 String temp = null;
  18.                 System.out.println("请输入要反向排序的值,值之间请用回车符分割:");        //搞个提示
  19.                
  20.                 while (!"end".equals(temp)) {  //要用确认的值去equals不确认的值,不然null去调用equals就出现“java.lang.NullPointerException”,空指针异常了
  21.                        
  22.                         temp = scanner.nextLine();   //需要将temp加入到循环中来,不然的话,只有第一次的值能存储到temp中,因为第二次没接受到值,用null去调equals肯定要报空指针异常
  23.                         list.add(temp);
  24.                 }
  25.                
  26.                 Collections.sort(list); // 按字典序正序排序

  27.                 Collections.reverse(list);    //是你录入的问题,nextline是接收一行,你一直录入不敲回车,实际上程序是接收了一个元素,没什么好反转的,你要敲入一个元素,敲一下回车,这样就能反转了
  28.                
  29.                 for (String str : list) {
  30.                
  31.                         System.out.println(str);
  32.        
  33.                 }
  34.        
  35.         }

  36. }

  37. /**
  38. * 1.你用null去equals,肯定要报空指针,一定要闹清楚哪些东西该放进循环体里,可以自己先分析一下
  39. * 2.nextline是接收一行,貌似你没闹明白这一点,结果怎么敲都是一个元素,情何以堪
  40. */
复制代码
回复 使用道具 举报
为什么没有人给我加技术分?{:soso_e118:}

评分

参与人数 1黑马币 +3 收起 理由
漫步人 + 3 赞一个!

查看全部评分

回复 使用道具 举报
cuilitang 发表于 2013-10-29 23:15
为什么没有人给我加技术分?

云7就一个版主,加分慢很正常的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马