字符串索引超出范围异常且for循环不起作用

Sha*_*dan 1 java

我正在获得第一个for循环的正确输出:for(int i=0;i<=name.length();i++)但是不知道为什么我没有得到这个循环的任何输出:for(int i=name.length();i>=0;i--).执行时我收到错误,指出索引超出范围.

我在这里检查错误,但我不明白.

public class runner {
    public static void main(String[] args) {
        String name = "java";
        System.out.println(".length method()" + name.length());// executing
                                                                // .length()
                                                                // method
        System.out.println(".charAt method()" + name.charAt(5));
        for (int i = 0; i <= name.length(); i++) {
            System.out.println(name.charAt(i));
        }
        for (int j = name.length(); j >= 0; j--) {
            System.out.println(name.charAt(j));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

产量

j
a
v
a
Run Code Online (Sandbox Code Playgroud)

dka*_*zel 6

问题是 i<=name.length();

你想要的i<name.length();是因为长度超出了String中包装的char数组的范围.

出于同样的原因,您需要将第二个for循环更改为

for(int j=name.length()-1 ;j>=0;j--){
Run Code Online (Sandbox Code Playgroud)