我想将字符串转换为字节,然后再将字符串转换为字符串,如此
string -> byte -> string
示例qwerty -> [B@274b8c21 (byte) -> [B@274b8c21 (string) -> qwerty
我无法进入最后阶段:
这里是我的代码:
public class Converter {
public static void main(String []args) throws UnsupportedEncodingException{
Scanner scan = new Scanner(System.in);
System.out.println("Enter word:");
String text = scan.nextLine();
byte[] array = text.getBytes();
String newStr = array.toString();
String str = new String(array, "UTF-8");
String newStr2 = array.toString();
System.out.println("Representation in Byte: " + array);
System.out.println("Byte to String: " + str);
System.out.println("New Str2: " + newStr2);
byte [] newByte = newStr2.getBytes();
System.out.println("New Byte" + newByte);
String str2 = new String(newByte, "UTF-8");
System.out.println(str2);
}
}
答案 0 :(得分:0)
尝试此new String (bytearray,charset)
转换为byte to String
System.out.println("New Byte" + new String(newByte),"UTF-8";
答案 1 :(得分:0)
String newStr2 = array.toString();
这不会从byte[]
创建新的字符串,而是提供byte[]
数组的字符串表示。
从byte[]
创建新字符串的正确方法是
String newStr2 =new String(array, "UTF-8");
这似乎已经在这一行String str = new String(array, "UTF-8");
中完成了。这是从给定byte[]
创建新String的正确方法。
答案 2 :(得分:0)
您确定使用UTF-8作为字符编码吗?如果没有尝试使用默认值。
String s = new String(newByte);
System.out.println("Text Decryted : " + s);
答案 3 :(得分:0)
String newStr = array.toString();
它不会显示原始字符串,而是显示字节值
String str = "Stackoverflow";
byte[] byt = str.getBytes();
System.out.println("String : " + str);
System.out.println("String in Byte Fromat: " + byt.toString());
System.out.println("String to Byte: " + byt);
String s = new String(byt);
System.out.println("Byte to String : " + s);
答案 4 :(得分:0)
Java不支持直接打印 byte Array 的方法。
因此,您可以将加密的数组转换为String&在editText2上打印,如下所示
Scanner scan = new Scanner(System.in);
System.out.println("Enter word:");
String editText1 = scan.nextLine();
byte[] array = editText1.getBytes();
/*
* do Your Encryption Here
*/
String editText2 = new String(array);
System.out.println(editText2);
或者如果你真的想要打印你可以做的字节,如下所示
Scanner scan = new Scanner(System.in);
System.out.println("Enter word:");
String editText1 = scan.nextLine();
byte[] array = editText1.getBytes();
/*
* do Your Encryption Here
*/
String editText2 = "[";
for (byte b : array) {
editText2 += (" " + b + ",");
}
editText2 += "]";
System.out.println(editText2);
打印array.toString()
始终将参考提供给字节数组