Commons codec jar包详解

Commons项目中用来处理常用的编码方法的工具类包,例如DES、SHA1、MD5、Base64, 及 hex, metaphone, soundex 等编码演算

JavaDoc:http://www.osctools.net/apidocs/apidoc?api=commons-codec

官网下载地址:http://commons.apache.org/codec/

使用:

A.Base64 编解码

 

package demo;



import org.apache.commons.codec.binary.Base64;



public class Base64Test {



    public static void main(String[] args) {



        Base64 base64 = new Base64();

        String str = "中文";

        byte[] enbytes = null;

        String encodeStr = null;

        byte[] debytes = null;

        String decodeStr = null;



        enbytes = base64.encode(str.getBytes());

        encodeStr = new String(enbytes);

        debytes = base64.decode(enbytes);

        decodeStr = new String(debytes);

    

        System.out.println("编码前:" + str);

        System.out.println("编码后:" + encodeStr);

        System.out.println("解码后:" + decodeStr);

    }

}

B.Hex 编解码

 

 

package demo;



import org.apache.commons.codec.DecoderException;

import org.apache.commons.codec.binary.Hex;



public class HexTest {



    public static void main(String[] args) throws DecoderException {



        Hex hex = new Hex();

        String str = "中文";

        char[] enbytes = null;

        String encodeStr = null;

        byte[] debytes = null;

        String decodeStr = null;



        enbytes = hex.encodeHex(str.getBytes());

        encodeStr = new String(enbytes);

        debytes = hex.decodeHex(enbytes);

        decodeStr = new String(debytes);



        System.out.println("编码前:" + str);

        System.out.println("编码后:" + encodeStr);

        System.out.println("解码后:" + decodeStr);

    }

}

C.Metaphone 及 Soundex 编码

 

package demo;



import org.apache.commons.codec.language.Metaphone;

import org.apache.commons.codec.language.RefinedSoundex;

import org.apache.commons.codec.language.Soundex;



public class LanguageTest {



    public static void main(String[] args) {



        Metaphone metaphone = new Metaphone();

        RefinedSoundex refinedSoundex = new RefinedSoundex();

        Soundex soundex = new Soundex();

        for (int i = 0; i < 2; i++) {

            String str = (i == 0) ? "resume" : "resin";

            String mString = null;

            String rString = null;

            String sString = null;

            try {

                mString = metaphone.encode(str);

                rString = refinedSoundex.encode(str);

                sString = soundex.encode(str);

            } catch (Exception ex) {

                ;

            }

            System.out.println("Original:" + str);

            System.out.println("Metaphone:" + mString);

            System.out.println("RefinedSoundex:" + rString);

            System.out.println("Soundex:" + sString + "\n");

        }

    }

}

Metaphone 建立出相同的key给发音相似的单字, 比 Soundex 还要准确, 但是 Metaphone 没有固定长度, Soundex 则是固定第一个英文字加上3个数字. 这通常是用在类似音比对, 也可以用在 MP3 的软件开发.

你可能感兴趣的:(commons)