java.lang.StringIndexOutOfBoundsException

标签 java string indexoutofboundsexception

这是一个将十六进制转换为字符串的代码,但在字符串大小不超过 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: String index out of range: 62 at java.lang.String.substring(Unknown Source) at HEX.hexToString(HEX.java:36) at HEX.main(HEX.java:56)

最佳答案

i+2String str = hex.substring(i, i+2);是问题所在。即使i < hex.length() , i+2如果 hex.length() 太大很奇怪。

关于java.lang.StringIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12317716/

相关文章:

java - Java中大型二维矩阵的矩阵乘法

java - hibernate 继承缓存,CacheKey 中使用的实体名称不正确?

python - 从字符串中提取未加引号的文本

java - java中将一个字符串转换为另一个字符串

java - 使用 SQL 开发人员从索引中提取字符串

java - 遍历 Lotus Domino 中的每个文档

java - 这个 XML/XSD 有什么问题?

java - Android:当两个字符串相等时,在 onPostExecute() 中启动一个新的 Activity

lucene - Luke 说我的 Lucene 索引目录无效

c - 无越界错误