一、字典顺序
1、正统概念:
对于数字1、2、3......n的排列,不同排列的先后关系是从左到右逐个比较对应的数字的先后来决定的。例如对于5个数字的排列 12354和12345,排列12345在前,排列12354在后。按照这样的规定,5个数字的所有的排列中最前面的是12345,最后面的是 54321。
2、一般理解:
先看看字典里的单词是怎么排序的,先大写字母然后小写字母,如果需要排序的是:A,ab,a,ac,abc,那么排序后的结果是:A,a,ab,abc,ac。数字也是如此,将会被倒序排列。
3、分析:
(1)、识别用户从键盘输入的字符串,一行一行的读取。
(2)、如果用户输入“exit”,程序终止。
(3)、用户输入的字符串存入到集合中。
(4)、使用集合工具类Collections进行排序。
(5)、使用迭代器Iterator迭代输出。
4、算法实现:
package com.itheima;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
/*
* 第7题:编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。
*
* */
public class Test7 {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
System.out.println("请输入字符串:");
// 定义一个具有泛型的ArrayList集合,类型是String
ArrayList<String> list=new ArrayList<String>();
//因为是监听的键盘输入,所以为了提高效率,虽然这里差别很小,建议还是使用BufferedReader缓冲区,当然还可以使用Scanner之类,也可以实现相同的效果
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
//定义一个String类型的message,初始值为null
String message=null;
//使用while循环对用户输入的内容进行判断,如果不为空,进入循环
while((message=in.readLine())!=null){
//判断用户输入的字符串是否为”exit“,如果是,结束循环体
if(message.equals("exit")){
break;
}
//否则将字符串添加到ArrayList集合中
list.add(message);
}
//Collections工具类提供了操作List集合的各种方法,其中就有对List集合进行字典倒序的方法
Collections.sort(list, Collections.reverseOrder());
//使用迭代器将list集合中的元素一一读出
Iterator it=list.iterator();
//迭代器对象调用hasNext方法返回的是boolean类型对象
while(it.hasNext()){
System.out.println(it.next());
}
}
}