Java 为什么此代码没有';t工作-调试当前指令指针问题

Java 为什么此代码没有';t工作-调试当前指令指针问题,java,debugging,Java,Debugging,我一直在尝试修复此代码。问题是根据字母序列a=0、B=1、C=1、D=2、E=3、F=5等规则,找到字符串的等价数字。例如,ABC=0+1+1=2(输出) 当我运行代码时,它会在for循环中显示一个调试当前指令指针。什么是错误的,为什么 public class faboalpha { public static void main(String[]args){ String gst="MAN"; char ser[]={'A'

我一直在尝试修复此代码。问题是根据字母序列a=0、B=1、C=1、D=2、E=3、F=5等规则,找到字符串的等价数字。例如,ABC=0+1+1=2(输出)

当我运行代码时,它会在for循环中显示一个调试当前指令指针。什么是错误的,为什么

 public class faboalpha {

        public static void main(String[]args){
            String gst="MAN";
            char ser[]={'A','B','C','D','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};

            int cor[]=new int[26];
            cor[0]=0;
            cor[1]=1;
            cor[2]=1;
            for(int i=3;i<26;i++)
                cor[i]=cor[i-1]+cor[i-2];

            char gchar[]=new char[gst.length()];
            for(int i=0;i<gst.length();i++)
                gchar[i]=gst.charAt(i);

            int sum=0;
            for(int i=0;i<gst.length();i++){
                for(int j=0;j<=25;j++){
                    if(gchar[i]==ser[j]) // <----------- Debug Current Instructor Pointer, why?
                        sum=sum+cor[j];
                }
            }

            System.out.println(sum);
        }


}
公共级faboalpha{
公共静态void main(字符串[]args){
字符串gst=“MAN”;
字符ser[]={'A'、'B'、'C'、'D'、'F'、'G'、'H'、'I'、'J'、'K'、'L'、'M'、'N'、'O'、'P'、'Q'、'R'、'S'、'T'、'U'、'V'、'W'、'X'、'Y'、'Z'};
int cor[]=新int[26];
cor[0]=0;
cor[1]=1;
cor[2]=1;

对于(int i=3;i而言,问题在于对于
j=25
而言,索引超出范围,因为
ser[]
数组太短,即
ser.length
很可能小于26,因此
ser[j]
将导致错误

提示:查找似乎丢失的字母
'E'
'A','B','C','D','F',…

第二个提示:尝试跟踪消息并使用调试器调试那里发生的事情


第三个提示:我个人会使用
(It i=3;您是否有一个断点?LOL java和指针标记在一起?Fabonacci????远距?顺便说一下,您应该考虑删除这样的不良命名约定,尤其是在请求帮助时,因为您的代码非常难读取,这些奇怪的变量<代码> SER <代码>,<代码> GST ,<代码> GCHAR