我的程序执行错误。
错误是:
--------------------Configuration: <Default>--------------------
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 6
at java.lang.String.charAt(String.java:687)
at codeinstaneous.main(codeinstaneous.java:19)
流程已完成。 为什么会发生这种情况?这是我的代码:
import javax.swing.*;
public class codeinstaneous {
public static void main (String[] args) {
String theCode;
theCode = JOptionPane.showInputDialog("Enter the code to decoded it :");
char theBit;
char theSource='a';
int i=0;
for(i=0;i <= theCode.length() ;i++){
theBit = theCode.charAt(i);
if(theBit=='0')
i++;
if(theBit=='0')
theSource='1';
}
JOptionPane.showMessageDialog(null,theSource);
}
}
答案 0 :(得分:4)
这一行:
for(i=0; i <= theCode.length();i++){
应该有<
而不是<=
。这是因为您正在为该字符串和的长度执行for
循环。由于String
是一个基于零的数组,您尝试在i
=长度时找到该字符,并且不能,因为那里没有字符。因此,它会引发异常,因为它无法找到该字符。所以要解决这个问题,请使用以下代码:
for(i=0; i < theCode.length();i++){
答案 1 :(得分:0)
更改
for(i=0; i <= theCode.length(); i++)
到
for(i=0; i < theCode.length(); i++)