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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杜正冬 中级黑马   /  2012-11-25 17:02  /  1257 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杜正冬 于 2012-11-25 17:03 编辑

        // 已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,并按照自然顺序排序后输出到b.txt文件中。即b.txt中的文件内容应为“abcd…………..”这样的顺序。

        public static void main(String[] args) {

                ReadFile();

        }

        public static void ReadFile() {
                String str = null;
                try {
                        FileReader fr = new FileReader("D:\\a.txt");
                        char[] buf = new char[1024];
                        int num = 0;
                        while ((num = fr.read(buf)) != -1) {
                                str = new String(buf, 0, num);
                                System.out.println("文件内容是:" + str);
                        }
                } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                byte[] bu = str.getBytes();
                for (int i = 0; i < bu.length; i++) {
                        int index = locateNextMaxNumber(bu, i);
                        exchange(bu, i, index);//调用排序
                }
                System.out.print(new String(bu));
        }

        public static int locateNextMaxNumber(byte[] a, int sta) {
                int staNum = a[sta], staIndex = sta;
                for (int i = sta + 1; i < a.length; i++) {
                        if (a < staNum) {
                                staIndex = i;
                                staNum = a;
                        }
                }
                return staIndex;
        }

        public static void exchange(byte[] a, int i, int j) {
                byte temp = a;
                a = a[j];
                a[j] = temp;
        }

未222命名.jpg (230.61 KB, 下载次数: 24)

未222命名.jpg

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马