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;
import java.util.List;
/*
题目:编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。
分析:
1.字符串本身提供的比较性为字典顺序,可以使用工具类Collections.reverse()方法将原来的比较性反序。
但也可以自定一个比较器,让集合自身必备比较性;
2.键盘录入的是字节流,操作的是字符流,可以使用转换流,并加入缓冲区技术,提高效率;
3.录入的字符串存储到ArrayList集合中;
4.使用Collections工具类给ArrayList中元素排序
5.打印ArrayList集合中的元素
步骤:
1.List<String> list = new ArrayList<String>();
2.BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
3.list.add(line);
4.Collections.sort(list, Collections.reverseOrder());
5.Iterator<String> it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
*/
public class Test16 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 1、定义一个ArrayList集合
List<String> list = new ArrayList<String>();
// 键盘录入字符串,转换流,缓冲区
System.out.println("请输入一些字符或者字符串, end 结束!");
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
String line = null;
try {
while ((line = bufr.readLine()) != null) {
if ("end".equals(line))
break;
// 往ArrayList集合中添加元素
list.add(line);
}
} catch (IOException e) {
throw new RuntimeException("IO异常");
}
// 给ArrayList排序,字典倒序
Collections.sort(list, Collections.reverseOrder());
// 打印集合
Iterator<String> it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
|
|