public static String toHexString(String s) { String str=""; for (int i=0;i< s.length();i++) { int ch = (int)s.charAt(i); str += Integer.toHexString(ch); } return str; }
时间: 2024-04-27 15:24:39 浏览: 16
这段代码是一个静态方法,接受一个String类型的参数s,将其转换为一个十六进制的字符串并返回。具体实现是通过遍历字符串s中的每一个字符,将其转换为对应的十六进制值,并将这些值拼接在一起形成最终的字符串。需要注意的是,由于字符串是不可变对象,所以在拼接字符串时最好使用StringBuilder等可变对象来提高效率。
相关问题
public static String byte2HexStr(byte[] b) { String stmp; StringBuilder sb = new StringBuilder(); for (int n = 0; n < b.length; n++) { stmp = Integer.toHexString(b[n] & 0xFF); //sb.append((stmp.length() == 1) ? "0" + stmp : stmp); sb.append(((stmp.length() == 1) ? "0" + stmp : stmp)); } return sb.toString().toUpperCase().trim(); }
这段代码是将一个 byte[] 数组转换为十六进制字符串的方法,下面是每一句代码的解释:
1. `public static String byte2HexStr(byte[] b)`:定义一个静态方法 byte2HexStr,接收一个 byte[] 类型的参数 b,返回一个字符串。
2. `String stmp;`:定义一个字符串类型的变量 stmp,用于存放转换后的字节码的字符串形式。
3. `StringBuilder sb = new StringBuilder();`:定义一个 StringBuilder 类型的变量 sb,用于存放转换后的十六进制字符串。
4. `for (int n = 0; n < b.length; n++)`:使用 for 循环,循环遍历 byte[] 数组 b 中的每一个字节。
5. `stmp = Integer.toHexString(b[n] & 0xFF);`:将 byte 类型的数字转换为十六进制字符串并存放在 stmp 变量中。具体地,通过位运算将 b[n] 中的字节与 0xFF 进行按位与运算,保留字节的后 8 位(即低 8 位),然后将其转换为十六进制字符串。
6. `sb.append(((stmp.length() == 1) ? "0" + stmp : stmp));`:将 stmp 变量中的字符串追加到 sb 变量中。如果 stmp 变量中的字符串长度为 1,则在其前面加上一个 0,再将其追加到 sb 中。
7. `return sb.toString().toUpperCase().trim();`:将 sb 变量中的字符串转换为大写形式,并去掉前后空格,最终返回转换后的十六进制字符串。
java 转 unicode_Java String字符串和Unicode字符相互转换代码详解
将Java String字符串转换为Unicode字符:
```java
public static String stringToUnicode(String str) {
StringBuilder unicode = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
unicode.append("\\u").append(Integer.toHexString(c));
}
return unicode.toString();
}
```
将Unicode字符转换为Java String字符串:
```java
public static String unicodeToString(String unicode) {
StringBuilder str = new StringBuilder();
String[] hex = unicode.split("\\\\u");
for (int i = 1; i < hex.length; i++) {
int data = Integer.parseInt(hex[i], 16);
str.append((char) data);
}
return str.toString();
}
```
使用示例:
```java
String str = "hello world";
String unicode = stringToUnicode(str);
System.out.println("Unicode: " + unicode);
String str2 = unicodeToString(unicode);
System.out.println("String: " + str2);
```
输出结果:
```
Unicode: \u0068\u0065\u006c\u006c\u006f\u0020\u0077\u006f\u0072\u006c\u0064
String: hello world
```