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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
* 5、 编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,
* 并将所有已输入的字符串按字典顺序倒序打印。
*  
*/

package com.itheima;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test5 {
        public static void main(String[] args) throws IOException {
                // 创建并将字节输入流封装在高效流中
                System.out.println("请输入字符串,并以end结束:");
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                String line = null;
                // 创建一个字符串缓冲对象,用于存放字符串
                StringBuffer sb = new StringBuffer();
                while ((line = br.readLine()) != null) {
                        // 当发现"end"是结束循环
                        if ("end".equals(line)) {
                                break;
                        }
                        // 将字符串添加到字符串缓冲对象
                        sb.append(line);
                }
//                将字符串缓冲对象转换为char数组
                char[] ch = sb.toString().toCharArray();
//                用比较排序法实现排序
                for (int index = 0; index < ch.length; index++) {
                        for (int index2 = index + 1; index2 < ch.length; index2++) {
                                char temp = '\u0000';
                                if (ch[index] > ch[index2]) {
                                        temp = ch[index];
                                        ch[index] = ch[index2];
                                        ch[index2] = temp;
                                }

                        }
                }
//                将排序好的字符数组封装成字符串缓冲对像并倒序,在打印
                StringBuffer result = new StringBuffer(String.valueOf(ch));
                result.reverse();
                System.out.println("按字典顺序倒序打印的结果是:");
                System.out.println(result);

        }
}

3 个回复

倒序浏览
多多指教啊
回复 使用道具 举报
package com.heima.stringbuffer;

import java.util.Scanner;

public class Lx5 {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                String str = "";
                while (true) {
                        System.out.println("请输入要录入的字符串:");
                        Scanner sc = new Scanner(System.in);
                        String str_get = sc.nextLine();
                        if (str_get.endsWith("end")) {
                                str = str + str_get;
                                break;
                        } else {
                                str += str_get;
                        }
                }
                byte[] arr = str.getBytes();
                for (int i = 0; i < arr.length - 1; i++) {
                        for (int j = 0; j < arr.length - 1 - i; j++) {
                                if (arr[j] > arr[j + 1]) {
                                        byte temp = arr[j];
                                        arr[j] = arr[j + 1];
                                        arr[j + 1] = temp;
                                }
                        }
                }
                String s = new String(arr);
                for (int i = s.length() - 1; i >= 0; i--) {
                        System.out.print(s.charAt(i));
                }
        }
        }
回复 使用道具 举报
代码太长了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马