java字符串转hex(Java字符串转小写)

发布时间:2022-11-09

本文目录一览:

1、java String字符串转UTF-8 hexcode怎么转? 2、java字符串转16进制 3、java hex 字符串怎么转换

java String字符串转UTF-8 hexcode怎么转?

String s = new String("欲转换字符串".getBytes(), "utf-8");
String s = new String("欲转换字符串".getBytes("utf-8"), "utf-8");

其中

s.getBytes("UTF-8");

的意思是以UTF-8的编码取得字节

new String(XXX, "UTF-8");

的意思是以UTF-8的编码生成字符串

java字符串转16进制

1、写转换函数是必须的,目前Jdk中无现有类。 2、在不同的字符编码当中,汉字的对应的数值或者说编码值不一样,像GBK、Unicode肯定是不一样的。以Java默认的Unicode为例说明问题。 3、 一,得到字符串, 二,遍历每个字符,用char来接收,实为int值,或直接用int也可以。 三,Integer.toHexString(每个字符对应的int值); 四,前缀加个“0x”就可以了。 4、如果是其它类型的话,找到对应的字符和数值对应表就可以了。 不知可否解决问题了。

java hex 字符串怎么转换

private static String hexString = "0123456789ABCDEF";
public static void main(String[] args) {
    System.out.println(encode("中文"));
    System.out.println(decode(encode("中文")));
}
/**
 * 将字符串编码成16进制数字,适用于所有字符(包括中文)
 */
public static String encode(String str) {
    // 根据默认编码获取字节数组
    byte[] bytes = str.getBytes();
    StringBuilder sb = new StringBuilder(bytes.length * 2);
    // 将字节数组中每个字节拆解成2位16进制整数
    for (int i = 0; i < bytes.length; i++) {
        sb.append(hexString.charAt((bytes[i] & 0xf0) >> 4));
        sb.append(hexString.charAt((bytes[i] & 0x0f) >> 0));
    }
    return sb.toString();
}
/**
 * 将16进制数字解码成字符串,适用于所有字符(包括中文)
 */
public static String decode(String bytes) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length() / 2);
    // 将每2位16进制整数组装成一个字节
    for (int i = 0; i < bytes.length(); i += 2)
        baos.write((hexString.indexOf(bytes.charAt(i)) << 4 | hexString
                .indexOf(bytes.charAt(i + 1))));
    return new String(baos.toByteArray());
}