黑马程序员技术交流社区
标题:
分享一个入学测试题目
[打印本页]
作者:
Kikyou
时间:
2014-8-27 20:14
标题:
分享一个入学测试题目
编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。
public class Test7 {
/**
* @param args
*/
public static void main(String[] args){
//创建一个list来装用户输入的字符串的集合
List<String> list = new ArrayList<String>();
BufferedReader br = null;
while(true){
//创建一个输入流,从键盘上读取输入的内容
br = new BufferedReader(new InputStreamReader(System.in));
//临时变量,记录每一次循环用户输入的字符串
String sb = null;
try {
//读取用户输入的每一行
if ((sb = br.readLine()) != null) {
//将每一行的字符串都添加到list集合中
list.add(sb);
//判断,当用户输入字符串是"end"的时候,将所有字符串按字典倒序排列并打印输出
if ("end".equals(sb)) {
//调用sort()方法将一个装有String类型的list集合排序后返回
List<String> tempList = sort(list);
//循环遍历打印输出集合中的元素
for (String word : tempList) {
System.out.println(word);
}
//关闭流
br.close();
return;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//一个对装有String类型的集合按字典倒序排序的方法
private static List<String> sort(List<String> list) {
for (int i = 0; i < list.size() - 1; i++) {
for (int j = i + 1; j < list.size(); j++) {
//双层for循环拿到相邻的两个字符串,调用compareToIgnoreCase()方法做忽略大小写的比较
if (list.get(j).compareToIgnoreCase(list.get(i)) > 0) {
//如果第二个比第一个要大,就调换它们的位置
String temp = list.get(i);
list.set(i, list.get(j));
list.set(j, temp);
}
}
}
return list;
}
}
复制代码
作者:
忆梦追风
时间:
2014-8-27 22:44
走起,还有没
作者:
一顿一只牛
时间:
2014-8-27 23:11
sort方法里for循环是不是写错了~
作者:
惠惠惠惠惠
时间:
2014-12-27 09:19
错的 。。。
作者:
牛牛宝
时间:
2014-12-27 15:53
双层for循环拿到相邻的两个字符串,调用compareToIgnoreCase()方法做忽略大小写的比较,这个方法从API中没有查到,有些不明白
作者:
彭越
时间:
2015-5-27 14:45
你的排序错 了
作者:
linp007
时间:
2015-7-9 19:49
/**
*
*/
package myTestDir;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.Comparator;
import java.util.TreeSet;
/**
* @author LinP
*第十三题:编写程序,循环接收用户从键盘输入多个字符串,
* 直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。
*/
public class TestD {
/**
* @param args
*/
public static void main(String[] args) {
Comparator<String> cmp = Collections.reverseOrder();
// TODO 自动生成的方法存根
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
TreeSet<String> set = new TreeSet<String>(cmp);
String line = null;
try {
while((line=bufr.readLine())!=null){
if("end".equals(line)){
break;
}
set.add(line);
}
System.out.println(set);
} catch (IOException e) {
// TODO 自动生成的 catch 块
throw new RuntimeException("输入流打印异常!");
}
finally{
if(bufr!=null){
try {
bufr.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
throw new RuntimeException("输入流关闭异常!");
}
}
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2