Java编程异常

kir*_*ran 0 java exception

谁能帮我?我不明白这个例外:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 9
    at java.lang.String.charAt(Unknown Source)
    at charPerLine.main(charPerLine.java:13)
Run Code Online (Sandbox Code Playgroud)

这是负责的代码:

import java.util.*;
public class charPerLine {

    public static void main(String[] args)throws StringIndexOutOfBoundsException {
        Scanner sc=new Scanner(System.in);
        System.out.print("Type any name:");
        String s=sc.next();
        int j= s.length()+1;
        for(int i=0;i<=j;i++){
            System.out.println(s.charAt(i));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*ard 10

您正在尝试直接访问少于10个字符的字符串的第10个字符.就像是:

"12345".charAt(9)
Run Code Online (Sandbox Code Playgroud)

请记住,String索引是从0开始的,因此.charAt(9)=>第10个字符.所以"123".charAt(3)也会抛出.

  • 这就是为什么我们有`for(char c:"123".toCharArray()){...}`:) (4认同)