二进制到 ASCII 字符串生成器的问题 (JAVA)
Binary to Ascii trouble with string builder (JAVA)
我有一个字符串,我想将其更改为二进制,但稍后在代码中我希望将其更改回 ascci。我该怎么做?到目前为止,这是我的代码:
String word = JOptionPane.showInputDialog("Insert word");
String s = word;
byte[] bytes = s.getBytes();
StringBuilder binary = new StringBuilder();
for (byte b : bytes) {
int val = b;
for (int i = 0; i < 8; i++) {
binary.append((val & 128) == 0 ? 0 : 1);
val <<= 1;
}
binary.append(' ');
}
System.out.println("'" + s + "' to binary: " + binary);
那么我怎样才能让 'binary' 回到 String 呢?显然只是输入 System.out.println(s);
谢谢
周杰伦
您可以使用 binary.toString()
从 StringBuilder
中提取内容,因此:
String text = binary.toString();
接下来需要处理二进制内容
您首先将字符串拆分为单词:
String[] byts = text.split(" ",-1);
接下来迭代表示字节的 String
并将它们转换为实际字节和字符:
int n = byts.length;
StringBuilder result = new StringBuilder();
for(int i = 0; i < n; i++) {
byte dat = 0;
String byi = byts[i];
for (int j = 0; j < byi.length(); j++){
char byij = byi.charAt(j);
dat <<= 0x01;
if(byij != '0') {
dat |= 0x01;
}
}
result.append((char) dat);
}
请参阅此 jDoodle 以获取工作示例...
我有一个字符串,我想将其更改为二进制,但稍后在代码中我希望将其更改回 ascci。我该怎么做?到目前为止,这是我的代码:
String word = JOptionPane.showInputDialog("Insert word");
String s = word;
byte[] bytes = s.getBytes();
StringBuilder binary = new StringBuilder();
for (byte b : bytes) {
int val = b;
for (int i = 0; i < 8; i++) {
binary.append((val & 128) == 0 ? 0 : 1);
val <<= 1;
}
binary.append(' ');
}
System.out.println("'" + s + "' to binary: " + binary);
那么我怎样才能让 'binary' 回到 String 呢?显然只是输入 System.out.println(s);
谢谢 周杰伦
您可以使用 binary.toString()
从 StringBuilder
中提取内容,因此:
String text = binary.toString();
接下来需要处理二进制内容
您首先将字符串拆分为单词:
String[] byts = text.split(" ",-1);
接下来迭代表示字节的 String
并将它们转换为实际字节和字符:
int n = byts.length;
StringBuilder result = new StringBuilder();
for(int i = 0; i < n; i++) {
byte dat = 0;
String byi = byts[i];
for (int j = 0; j < byi.length(); j++){
char byij = byi.charAt(j);
dat <<= 0x01;
if(byij != '0') {
dat |= 0x01;
}
}
result.append((char) dat);
}
请参阅此 jDoodle 以获取工作示例...