程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Jakarta-Common-Codec使用筆記

Jakarta-Common-Codec使用筆記

編輯:關於JAVA

commons codec 提供 base64, hex, 及 metaphone, soundex 等編碼演算。

下載地址: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 的軟件開發.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved