【发布时间】:2012-09-01 07:32:39
【问题描述】:
这是一个将十六进制转换为字符串的代码,但在字符串的大小不超过 62 个字符之前它可以正常工作?
public static String hexToString(String hex)
{
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));
}
return(output.toString());
}
java.lang.StringIndexOutOfBoundsException:字符串索引超出范围: 62 在 java.lang.String.substring(未知来源) 在 HEX.hexToString(HEX.java:36) 在 HEX.main(HEX.java:56)
【问题讨论】:
-
必须在输入中,举个例子
-
String hex1 = "234c02ecbbfbafa3ed18510abd11fa724fcda2018a1a8342cf064bbde548d"
-
这是 61 个字符,在你的 for 循环的最后一次迭代中,你要求字符 61+62.. 这就是问题所在。你到底想达到什么目的??
标签: java string indexoutofboundsexception