java编程:从键盘输入字符串,并按字典顺序倒序打印

编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。... 编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。 展开
 我来答
jiaoxiangpu
2013-06-28 · TA获得超过512个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:265万
展开全部
import java.util.ArrayList;
import java.util.Scanner;
public class JudgeString {
 public static void main(String[] args) {
  // 接受键盘输入
  Scanner in = new Scanner(System.in);
  // 保存输入数据的List
  ArrayList<String> list = new ArrayList<String>();
  System.out.println("请输入字符串,输入“end”为结束:");
  // 获取每次输入的字符串
  String temp = in.nextLine();
  // 获取输入的所有字符串
  while (!temp.equals("end")) {
   list.add(temp);
   temp = in.nextLine();
  }
  // 调用排序函数
  sort(list);
  //输入结果
  System.out.println("排序后的结果为:");
  for(int i = 0;i<list.size();i++){
   System.out.println(list.get(i));
  }
 }
 // 排序函数(冒泡)
 public static void sort(ArrayList<String> list) {
  String temp = "";
  for (int i = 0; i < list.size(); i++) {
   for (int j = 0; j < list.size() - 1; j++) {
    if (list.get(i).compareToIgnoreCase(list.get(j)) > 0) {
     temp = list.get(i);
     list.set(i, list.get(j));
     list.set(j, temp);
    }
   }
  }
 }
}

已经调试过了,肯定能运行,有不懂得可以问

追问
哥们,那个真的很抱歉,没看到你的回答,其实你这个才是正确的~给不了分了,留个地址,我给你寄点吃的哈。弱弱再问一句:冒泡排序不是依次比较相邻元素么,你这个看上去像选择排序,不懂勿喷~~~
追答
这个无所谓啦。重在学习分享。冒泡是依次比较相邻元素,把大元素向后排,就像水里面冒出来的气泡一样,大元素放到后面。每一次大循环完成,最后一位数总是最大的。选择排序是由一个中间变量保存一组数字中最大或者最小值,然后依次把它从第一位开始排列。直至全部排序完成。不懂得可以去百度一下选择和冒泡排序。这都是基本的排序方法。
小圣12345
推荐于2017-11-25 · TA获得超过820个赞
知道小有建树答主
回答量:198
采纳率:0%
帮助的人:158万
展开全部
import java.util.Scanner;

public class Test8 {

public static void main(String[] args) {
Scanner c = new Scanner(System.in);
StringBuffer sbf = new StringBuffer();
while(true){
System.out.println("请输入一组字符串:");
String s = c.nextLine();
if(s.equals("end")){
break;
}else{
sbf.append(s);
}
}
String sc = sbf.toString();
char[]cs = sc.toCharArray();
for(int i = cs.length-1;i>=0;i--){
System.out.print(cs[i]);
}
}
}

 不知道你所谓的字典顺序是什么意思? 我这个是把所有字符串组一块,倒序打印

更多追问追答
追问
就是按照字母的顺序排序,先比较第一个字符,第一字符相同,继续比较第二个字符。比如输入abc   bcd  efg  输出应该是efg  bcd  abc 。就是想问这个,java中有什么方法可以实现这个排序,求解!
追答

拿走试试

import java.util.Scanner;

public class Test8 {

public static void main(String[] args) {
Scanner c = new Scanner(System.in);
StringBuffer sbf = new StringBuffer();
while(true){
System.out.println("请输入一组字符串:");
String s = c.nextLine();
if(s.equals("end")){
break;
}else{
sbf.append(s+"-");
}
}
String sc = sbf.toString();
String[]cs = sc.split("-");
for(int i = cs.length-1;i>=0;i--){
char[] aa = cs[i].toCharArray();
 java.util.Arrays.sort(aa);
 //遍历aa
 for(char x:aa){
 System.out.print(x);
 }
 System.out.println();
}
}
}

 注意这两句

char[] aa = cs[i].toCharArray();
 java.util.Arrays.sort(aa);

把字符串分割成char类型数组 然后用Arrays.sort(aa)排序

ps: 黄岛的理工大? 

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式