Java-->把txt中的所有字元按照碼錶值排序,java--txt

來源:互聯網
上載者:User

Java-->把txt中的所有字元按照碼錶值排序,java--txt

--> List 列表中的自動添加的多餘空間長度該怎麼去除呢?...(已解決,是char 數組中的Null 字元)

package com.dragon.java.filesort;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;/* * 將day19-筆記.txt中的所有字元按照碼錶值排序, 存入另一個檔案中 */public class Test {    public static void main(String args[]) {        FileReader fr = null;        FileWriter fw = null;        ArrayList<Character> list = new ArrayList<>();        try {            fr = new FileReader(                    "C:/Users/xy/Desktop/檔案/Java/Java/DailyCode/08-14/src/com/dragon/java/days.txt");            fw = new FileWriter(                    "C:/Users/xy/Desktop/檔案/Java/Java/DailyCode/08-14/src/com/dragon/java/days01.txt");            char[] buffer = new char[1024];            while (true) {                int temp = fr.read(buffer, 0, buffer.length);                if (temp == -1) {                    break;                } else {   
             // 不能直接遍曆buffer 數組,因為當該數組過長是,裡面會有Null 字元!!  
             // 或者在遍曆的時候去除buffer 中的Null 字元 --> if((int)buffer[i] == 0) --> Null 字元在碼錶中為0.      
             for (int i = 0; i < temp; i++) {

                if (buffer[i] == '\r' || buffer[i] == '\n'
                      || buffer[i] == ' ' || buffer[i] == '\t') {
                   continue;
                }
                list.add(buffer[i]);
              }

                }            }            Collections.sort(list);            char[] buffer1 = new char[list.size()];            for (int i = 0; i < list.size(); i++) {                buffer1[i] = list.get(i);            }            fw.write(buffer1, 0, buffer1.length);        } catch (IOException e) {            System.out.println(e);        } finally {            try {                fr.close();                fw.close();            } catch (IOException e) {                System.out.println(e);            }        }    }        // 比較子比較字元的大小(可自主修改)    public static class MyCompartor implements Comparator<Character> {        @Override        public int compare(Character o1, Character o2) {            // if (o1 == '\n' || o2 == '\n') {            // return 0;            // }            return o1 - o2;        }    }}        

--> 還是沒有解決多餘空間的問題啊...(OK )

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.