Java 为什么此代码没有';t工作-调试当前指令指针问题
我一直在尝试修复此代码。问题是根据字母序列a=0、B=1、C=1、D=2、E=3、F=5等规则,找到字符串的等价数字。例如,ABC=0+1+1=2(输出) 当我运行代码时,它会在for循环中显示一个调试当前指令指针。什么是错误的,为什么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'
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