我的程序给出了索引超出范围的错误

-7 java indexoutofboundsexception

int i=0;    
while(!a.isEmpty()) {         
    if(a.toCharArray()[i]==' ') { 
        System.out.println(a.toCharArray()[i]);         
    }         
    i++;     
}     
Run Code Online (Sandbox Code Playgroud)

当我运行这个程序时,它给了我一个错误:索引越界.我该如何解决?

ars*_*jii 5

你不是a在循环中改变,所以a.isEmpty()不会改变,你将继续循环直到i超出界限.你的意思是:

while (i < a.length()) {
Run Code Online (Sandbox Code Playgroud)

另外,a.toCharArray()[i]可以(而且应该)只是a.charAt(i)(正如@MartijnCourteaux也指出的那样).