Java 将十六进制转换为原始字符串值
在一个调用以太坊契约方法的android应用程序中,我有一个函数,它在return()中返回一个十六进制值,在这种情况下,字符串是Java 将十六进制转换为原始字符串值,java,android,ethereum,Java,Android,Ethereum,在一个调用以太坊契约方法的android应用程序中,我有一个函数,它在return()中返回一个十六进制值,在这种情况下,字符串是yoooo,十六进制是: 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000009796f6f6f6f6f6f6f6f00000000000000000000000
yoooo
,十六进制是:
0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000009796f6f6f6f6f6f6f6f0000000000000000000000000000000000000000000000
契约API向十六进制添加填充,如链接中所述。如何在没有填充的情况下从上面的十六进制值中获取原始值 请试试这个
String hex = "00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000009796f6f6f6f6f6f6f6f0000000000000000000000000000000000000000000000";
StringBuilder output = new StringBuilder();
for (int i = 0; i < hex.length(); i+=2) {
String str = hex.substring(i, i+2);
output.append((char)Integer.parseInt(str, 16));
}
System.out.println(output.toString().trim());
String hex=“00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009796F6F6F6F6F6F0000000000000000000000000000”;
StringBuilder输出=新的StringBuilder();
对于(int i=0;i
请试试这个
String hex = "00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000009796f6f6f6f6f6f6f6f0000000000000000000000000000000000000000000000";
StringBuilder output = new StringBuilder();
for (int i = 0; i < hex.length(); i+=2) {
String str = hex.substring(i, i+2);
output.append((char)Integer.parseInt(str, 16));
}
System.out.println(output.toString().trim());
String hex=“00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009796F6F6F6F6F6F0000000000000000000000000000”;
StringBuilder输出=新的StringBuilder();
对于(int i=0;i
试试这个
public static String convertHexToStringValue(String hex) {
StringBuilder stringbuilder = new StringBuilder();
char[] hexData = hex.toCharArray();
for (int count = 0; count < hexData.length - 1; count += 2) {
int firstDigit = Character.digit(hexData[count], 16);
int lastDigit = Character.digit(hexData[count + 1], 16);
int decimal = firstDigit * 16 + lastDigit;
stringbuilder.append((char)decimal);
}
return stringbuilder.toString();
}
公共静态字符串转换器hextostringvalue(字符串十六进制){
StringBuilder StringBuilder=新的StringBuilder();
char[]hexData=hex.toCharArray();
对于(int count=0;count
试试这个
public static String convertHexToStringValue(String hex) {
StringBuilder stringbuilder = new StringBuilder();
char[] hexData = hex.toCharArray();
for (int count = 0; count < hexData.length - 1; count += 2) {
int firstDigit = Character.digit(hexData[count], 16);
int lastDigit = Character.digit(hexData[count + 1], 16);
int decimal = firstDigit * 16 + lastDigit;
stringbuilder.append((char)decimal);
}
return stringbuilder.toString();
}
公共静态字符串转换器hextostringvalue(字符串十六进制){
StringBuilder StringBuilder=新的StringBuilder();
char[]hexData=hex.toCharArray();
对于(int count=0;count
(我认为)有多种可能的方法来实现这一点。我将在这里列出一种处理此类问题的直观方法
您可以从字符串(十六进制)
到字节数组
再到字符串作为UTF-8(?)
。确保您的十六进制字符串没有前导空格和其他内容
给出:
?Yoooooo
(我认为)有多种可能的方法来实现这一点。我将在这里列出一种处理此类问题的直观方法
您可以从字符串(十六进制)
到字节数组
再到字符串作为UTF-8(?)
。确保您的十六进制字符串没有前导空格和其他内容
给出:
?Yoooooo
是表示为字符串
或大整数
?@DebosmitRay添加了响应数据对象的屏幕截图<代码>字符串似乎是这样。@3kings我不知道OP是否查到了。但是,使用标准的libs(番石榴汁)这篇文章真的没有什么好处。@johnyonan-Hey。我正在尝试为以太坊开发一个钱包应用程序,用于我在大学的学习。你能告诉我,你是怎么做到的吗?我找不到android的轻客户端。请给出任何说明。十六进制表示为字符串
还是大整数
?@DebosmitRay添加了响应数据对象的屏幕截图<代码>字符串似乎是这样。@3kings我不知道OP是否查到了。但是,使用标准的libs(番石榴汁)这篇文章真的没有什么好处。@johnyonan-Hey。我正在尝试为以太坊开发一个钱包应用程序,用于我在大学的学习。你能告诉我,你是怎么做到的吗?我找不到android的轻客户端。任何方向请。尝试一下,它给出�������������������������������������������������������������� ��������������������������������������������������������������哟哟哟����������������������������������������������代码>。可能只得到字符串?请查看答案,它给出�������������������������������������������������������������� ��������������������������������������������������������������哟哟哟����������������������������������������������代码>。可能只获取字符串?请查看答案editI需要找到一种方法来修复前导的?
。我会在更新时更新。如果你先找到路,请让我知道。我会一直打开它,直到有一个只有字符串值的答案,但谢谢你的帮助@DebosmitRay@JohnYounan我认为这与返回数据中的填充有关。您知道调用了什么函数,并且应该能够告诉您如何解析十六进制数据。文学士