我的Java代码在线程“ main”中引发异常java.lang.ArrayIndexOutOfBoundsException?

问题描述 投票:0回答:1

我的Java代码在线程“主”中引发异常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代码在线程“主”中引发异常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)
java arrays math console-application
1个回答
0
投票
for(int i:eachChar)
{
  finalDeci=finalDeci+eachChar[i]*((int)Math.pow(10, i));
}

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

查看For-Each Loop了解更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.