我的 java 代码在线程 "main" java.lang.ArrayIndexOutOfBoundsException 中抛出异常?

My java code throws Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException?

我的 java 代码在线程 "main" java.lang.ArrayIndexOutOfBoundsException 中抛出异常? 代码看起来像这样。它写在java中。 IDE使用的是Eclipse

package week5;

import java.util.*;
import java.lang.Math;

public class DecimalToHex {

    public static void main(String[] args) {
        Scanner sn=new Scanner(System.in);
        System.out.println("--Enter Hexadecimal Number--");
        String hex=sn.next();
        ConvertHexaToDec(hex.toUpperCase());
        sn.close();
    }

    public static void ConvertHexaToDec(String hex)
    {
        String hexChar="0123456789ABCDEF";
        int[] eachChar=new int[hex.length()];
        int finalDeci=0;
        for(int i=0;i<hex.length();i++)
        {
            eachChar[i]=hexChar.indexOf(hex.charAt(i));
        }
        for(int i:eachChar)
        {
            finalDeci=finalDeci+eachChar[i]*((int)Math.pow(10, i));
        }
        System.out.println("Decimal Value Is "+finalDeci);


    }

}

我的 java 代码在线程 "main" java.lang.ArrayIndexOutOfBoundsException 中抛出异常? 错误显示。

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
    at week5.DecimalToHex.ConvertHexaToDec(DecimalToHex.java:27)
    at week5.DecimalToHex.main(DecimalToHex.java:12)
for(int i:eachChar)
{
  finalDeci=finalDeci+eachChar[i]*((int)Math.pow(10, i));
}

这里 i 已经有了 eachChar[i] 的值,因为您使用的是 for-each 循环而不是 indexed for 循环。

查看 For-Each Loop 了解更多详情。