⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.java

📁 java相关的j2me,j2se的一些相关资料
💻 JAVA
字号:
import java.io.UnsupportedEncodingException;
public class Test {
    public Test() {}
    public static final String HexCode[] = {
        "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
        "A", "B", "C", "D", "E", "F"
    };
    public static final String OctalCode[] = {
        "0", "1", "2", "3", "4", "5", "6", "7"
    };
    
    ///十进制转十六进制字符串: HexCode[i/16]+HexCode[i%16]
    ///java的byte范围: -127到128,所以小于0时,需要加256.
    public static final String byteToHexString(byte b){
        int i = (int)b;
        if(i<0) i= i+256;
        return HexCode[i/16]+HexCode[i%16];
    }
    ///十六进制字符串转十进制: 1F(16进制) = 1*16+15(十进制)
    ///java的byte范围: -127到128,所以不用Byte.parseByte,会因数据过大而出错,如FF时大于128就会出错
    public static final int hexStringToInt(String hex){
        if(hex==null) return -1;
        return Integer.parseInt(hex,16);
    }
    
    public static byte[] hexStringToByteArray(String hex){
        if (hex==null) return null;
        byte[] result = new byte[hex.length()/2];
        for(int i=0; i<result.length; ++i) {
            int x  = Integer.parseInt(hex.substring(i*2,i*2+2),16);
            result[i] = x<=127 ? (byte)x : (byte)(x-256);
        }
        return result;
    }
    public static String byteArrayToHexString(byte[] data){
        if(data==null) return null;
        String hex = "";
        for(int i = 0; i < data.length; i++)  hex = hex + byteToHexString(data[i]);
        return hex;
    }
    
    ///十进制转八进制字符串
    ///java的byte范围: -127到128.,所以小于0时,需要加256.
    //String octal1,octal2,octal3;//octal3 = OctalCode[i%8]; octal2 = OctalCode[(i/8)%8]; octal1 = OctalCode[(i/8)/8];
    public static final String byteToOctalString(byte b){
        int i = (int)b;
        if(i<0) i= i+256;
        return OctalCode[(i/8)/8]+OctalCode[(i/8)%8]+OctalCode[i%8];
    }
    ///八进制字符串转十进制: 377(8进制) = ((3*8+7)*8+7)(十进制)
    ///java的byte范围: -127到128,,所以不用Byte.parseByte,会因数据过大而出错,如377时大于128就会出错.
    public static final int octalStringToInt(String octal){
        if (octal==null) return -1;
        return Integer.parseInt(octal,8);
    }
    
    ////unicode编码: 00550054004600310036004200456D4B8BD5 对应汉字为 UTF16BE测试
    public static String parseUTF16BE(byte[] data){
        if(data==null) return null;
        String unicode = null;
        try {
            unicode = new String(data,"UTF-16BE");
            //unicode = new String(data,"UTF-16"); //UTF-16BE 等价于 UTF-16
        } catch (UnsupportedEncodingException ex) {
            ex.printStackTrace();
        }
        return unicode;
    }
    ////unicode编码:UTF16BE测试 对应为 00550054004600310036004200456D4B8BD5
    public static byte[] getUTF16BE(String unicode){
        if(unicode==null) return null;
        byte b[] = null;
        try {
            b = unicode.getBytes("UTF-16BE");
        } catch (UnsupportedEncodingException ex) {
            ex.printStackTrace();
        }
        return b;
    }
    
    ////////ASCII编码:303730383039对应的数字为 070809
    public static String parseASCII(byte[] data){
        if(data==null) return null;
        String ascii = null;
        try {
            ascii= new String(data,"UTF-8");
            //ascii = new String(data,"ASCII"); //UTF-8 等价于 ASCII
        } catch (UnsupportedEncodingException ex) {
            ex.printStackTrace();
        }
        return ascii;
    }
    ////ASCII编码:070809 对应为 303730383039
    public static byte[] getASCII(String ascii){
        if(ascii==null) return null;
        byte b[] = null;
        try {
            b = ascii.getBytes("UTF-8");
            //b = ascii.getBytes("ASCII");
        } catch (UnsupportedEncodingException ex) {
            ex.printStackTrace();
        }
        return b;
    }
    
    ////GB2312编码:474232333132B2E2CAD4 对应为 GB2312测试
    public static String parseGB2312(byte[] data) {
        if(data==null) return null;
        String gb2312 = null;
        try {
            gb2312 = new String(data,"gb2312");
        } catch (UnsupportedEncodingException ex) {
            ex.printStackTrace();
        }
        return gb2312;
    }
    ////GB2312编码:GB2312测试 对应为 474232333132B2E2CAD4
    public static byte[] getGB2312(String gb2312) {
        if(gb2312==null) return null;
        byte[] b = null;
        try {
            b = gb2312.getBytes("gb2312");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return b;
    }
    
    public static void main(String args[]) throws UnsupportedEncodingException{
        System.out.println(byteToHexString((byte)(-1)));//打印出 FF
        System.out.println(hexStringToInt("FF"));        //打印出 255
        System.out.println(byteToOctalString((byte)(-1))); //打印出 377
        System.out.println(octalStringToInt("377"));        //打印出 255
/////编码
        System.out.println(parseUTF16BE(hexStringToByteArray("00550054004600310036004200456D4B8BD5"))); //打印出 UTF16BE测试
        System.out.println(parseASCII(hexStringToByteArray("303730383039"))); //打印出 070809
        System.out.println(parseGB2312(hexStringToByteArray("474232333132B2E2CAD4"))); //打印出 GB2312测试
/////解码
        byte[] unicodeB = getUTF16BE("UTF16BE测试");
        System.out.println(byteArrayToHexString(unicodeB)); //打印出:00550054004600310036004200456D4B8BD5
        for(int i=0;i<unicodeB.length;i++){
            System.out.println(byteToHexString(unicodeB[i])); //分别打印出 00 55 00 54 00 46 00 31 00 36 00 42 00 45 6D 4B 8B D5
        }
        byte[] asciiB = getASCII("070809");
        System.out.println(byteArrayToHexString(asciiB));//打印出:303730383039
        for(int i=0;i<asciiB.length;i++){
            System.out.println(byteToHexString(asciiB[i])); //分别打印出 30 37 30 38 30 39
        }
        byte gb2312B[] = getGB2312("GB2312测试"); //打印出:474232333132B2E2CAD4
        System.out.println(byteArrayToHexString(gb2312B));
        for(int i=0;i<gb2312B.length;i++){
            System.out.println(byteToHexString(gb2312B[i])); //分别打印出 47 42 32 33 31 32 B2 E2 CA D4
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -