Java 继续使索引超出范围

Java 继续使索引超出范围,java,char,boolean,double,indexoutofrangeexception,Java,Char,Boolean,Double,Indexoutofrangeexception,我正在制作一个程序来计算句子中的单词。空格不算数,标点不算数。我正在使用一个模块,它将接收输入并输出答案。但是不要担心,因为我不认为这是我的程序打印这个的原因 线程“main”java.lang.StringIndexOutOfBoundsException中的异常: 字符串索引超出范围:11 位于java.lang.String.charAt(String.java:658) 在WordCount.main(WordCount.java:20) 公共类字数{ 公共静态void main(字符

我正在制作一个程序来计算句子中的单词。空格不算数,标点不算数。我正在使用一个模块,它将接收输入并输出答案。但是不要担心,因为我不认为这是我的程序打印这个的原因

线程“main”java.lang.StringIndexOutOfBoundsException中的异常: 字符串索引超出范围:11 位于java.lang.String.charAt(String.java:658) 在WordCount.main(WordCount.java:20)
公共类字数{
公共静态void main(字符串[]args){
System.out.println(“请输入句子”);
String语句=IO.readString();
System.out.println(“请输入最小字长”);
double minword=IO.readInt();
字符串字;
int wordletter=0;
int字数=0;
整数计数=-1;
int end=句子长度();
做{
计数++;
字符空间=句子.charAt(计数);
if(字符.空格)){
布尔切割=字符.isSpaceChar(空格);
if(cut==true)
单词=句子。子字符串(0,计数);
计数=0;
wordletter=word.length();
end=end-wordletter;
if(wordletter
字符空间=句子.charAt(计数)导致异常,因为循环条件运行的次数太多。对于while条件,您需要小于而不是不等于

while (count - 1 < end);

简单的答案是数组有
array.length
元素,其索引是
0,1。。。array.length-1
。您的代码(如编写的)将尝试索引
0,1。。。array.length

考虑一下您正在使用的终止循环的条件



但这还不足以修复您的程序。我至少还能看到两个虫子。因为这显然是一个学习练习,我建议你自己找到并修复它们……”因为这是你需要培养的一项重要技能。我建议您使用IDE的调试器运行程序,并对代码进行“单步”检查,以了解它在做什么。

您确定复制的程序正确吗?(已从正文中删除任何计数+)。它应该从0到句子。长度()-1。是的。在使用do-while循环之前,我使用了for循环,得到了相同的错误。
while (count - 1 < end);
int end= sentence.length();
count = -1;
while (++count < end) {

}
int end = sentence.length();
for (int i = 0; i < end; i++ {
    // ...
}