字符串转byte数组
时间: 2023-06-28 13:11:24 浏览: 80
在Java中,可以使用字符串的 `getBytes()` 方法将字符串转换为字节数组。例如:
```java
String str = "hello";
byte[] bytes = str.getBytes();
```
上述代码将字符串 `"hello"` 转换为字节数组 `bytes`。如果需要指定字符集,则可以在 `getBytes()` 方法中传递字符集参数。例如:
```java
String str = "你好";
byte[] bytes = str.getBytes("UTF-8");
```
上述代码将字符串 `"你好"` 使用 UTF-8 编码转换为字节数组 `bytes`。
相关问题
字符串数组转byte数组
可以使用循环遍历字符串数组,将每个字符串转换为对应的byte数组,然后将所有byte数组合并成一个大的byte数组。具体实现可以参考以下代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char *strs[] = {"hello", "world", "c", "language"};
int n = sizeof(strs) / sizeof(strs[]);
int total_len = ;
for (int i = ; i < n; i++) {
total_len += strlen(strs[i]);
}
unsigned char *bytes = (unsigned char *) malloc(total_len);
int offset = ;
for (int i = ; i < n; i++) {
int len = strlen(strs[i]);
memcpy(bytes + offset, strs[i], len);
offset += len;
}
// now the bytes array contains the concatenated byte arrays of all strings
free(bytes);
return ;
}
```
16进制字符串str 转byte数组
可以使用以下代码将16进制字符串转换为byte数组:
```java
public static byte[] hexStringToByteArray(String str) {
int len = str.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(str.charAt(i), 16) << 4)
+ Character.digit(str.charAt(i+1), 16));
}
return data;
}
```
其中,将每两个16进制字符转换为一个byte,然后将这些byte存储在一个byte数组中。
阅读全文