首先,这里是我的代码中有问题的部分;这些都是非常基本的类
public Passenger(String Name, String adress, String number, String password){
count++;
accId+=count;
this.Name=Name;
this.adress=adress;
this.number=number;
if(checkPw(password)==true){
this.password=password;
}
}
private boolean checkPw(String password){
int length;
length = password.length();
if(length != 6){
return false;
}
else if(password.charAt(0)==0){
return false;
}
else {
for (int i = 0; i < password.length();i++){
if((password.charAt(i))==(password.charAt(i+1))){
return false;
}
}
}
return true;
}
TestClass:
public static void main(String[] args){
Passenger gokhan=new Passenger("Gokhan","Istanbul","xxx","254651");
System.out.println(gokhan.password);
}
所以,我认为问题出在客舱。这是我第一次在class things(我指的是if(checkPw(password)==true)部分)中使用该类。在测试类中,它看起来非常清楚而且我从来没有想过会出现这个错误。我该如何避免这条信息呢?
完全错误:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 6
at java.lang.String.charAt(String.java:658)
at project1.Passenger.checkPw(Passenger.java:45)
at project1.Passenger.<init>(Passenger.java:27)
at project1.testClass.main(testClass.java:11)
Java结果:1
问题就在这里:
for (int i = 0; i < password.length();i++){
if((password.charAt(i))==(password.charAt(i+1))){
return false;
}
}
在上一次迭代中,您试图访问String
中不存在的i+1
位置的char
。
text
^
|
when i = 3 charAt(i) will return t and charAt(i+1) will throw the exception
我将把字母表与您输入的字符串进行比较 当输入字符串与字母字符串匹配时,我将按照以下步骤进行操作 我不明白为什么会发生StringIndexOutOfBoundsException 问题出在哪里?
很抱歉,如果问题已经被问到了,我只是得到一个抛出,尽管我的程序在第一次尝试时运行正常。我尝试更改子字符串的索引,但也不起作用。以下是抛出的完整异常: 下面是台词:
问题内容: 在使方法在Java中正常工作时,我遇到了一些问题。在程序中,我创建了一个由许多不同长度的不同单词组成的数组。我正在使用的方法应该读取用户输入的字长,字母和位置,然后Java将打印出与这三个参数匹配的所有字(例如,如果用户键入了字长4,字母A和位置2,并打印出长度为4且在位置2包含字母A的单词)。 无论如何,我创建的方法如下所示: 对于某些输入,此方法很好用,但是对于其他输入,我会收到如
我正在编写一个打开文本文件并检查注释的程序。然后它解析注释以检查某些单词。 im出现的错误是以下while循环检查当前行是否以空白或“/”以外的任何字符开头(如果存在非反斜杠字符),然后while循环移到下一行并再次检查。一旦while循环满足其要求并爆发,程序就会崩溃,我会得到以下输出错误。 下面是有问题的代码示例 谢谢你的帮助。我肯定这是一个简单的错误,但我就是没看到。
问题内容: 当用2.4.6最小化yui时,出现此问题: java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:232 当通过我的IDE启动时,它可以工作,但是当部署到jboss时,它就不能工作。这个地方:http: //yuilibrary.com/forum/viewtopic.php?p=20086对该问题进行了一些讨论。 显然,问题出在org
问题内容: 我正在编写一个打开文本文件并检查注释的程序。然后,它解析注释以检查某些单词。 错误im出现在以下while循环中,该循环检查是否当前行以空格或除’/’以外的其他字符开头,如果那里存在非反斜杠字符,则while循环移至下一行并检查再次。一旦while循环满足其要求并中断程序崩溃,我将收到以下输出错误。 这是有问题的代码示例 谢谢你的帮助。我确定这是一个简单的错误,但我只是看不到它。 问题