Java字符串反转

import java.util.*;
public class Practise {

public static void main(String[] args) {
System.out.println("输入字符串: ");
Scanner S = new Scanner(System.in);
String b = S.nextLine();
char []ch = b.toCharArray();
for (int i = ch.length; i >= 0; i--){
System.out.print(ch[i]);
}
S.close();
}
}

为什么会在编译时会出问题:
12345Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at 字符串反转.Practise.main(Practise.java:13)
求大神解答。
另外,这两行有问题吗
String b = S.nextLine();
char []ch = b.toCharArray();

数组下唤卜标 越和银穗界 这个是用数搏含组常有错误! 


代码:

import java.util.*;
public class Practise {
public static void main(String[] args) {
System.out.println("输入字符串: ");
Scanner S = new Scanner(System.in);
String b = S.nextLine();
char[] ch = b.toCharArray();
for (int i = ch.length-1;i >=0; i--) {
System.out.print(ch[i]);
}
S.close();
}
}

public class SingleDome{
public static void main(String[] args){
java.util.Scanner sc = new 肢蠢哗java.util.Scanner(System.in);
System.out.println("请输入历行字符串..."档弯);
String str = sc.next();
StringBuffer sb = new StringBuffer();
sb.append(str);
String fanzhuan = String.valueOf(sb.reverse());
System.out.println(fanzhuan);
}
}

数组的索引是从0开始 的 最大为 length-1 循环一开始数组就越界了
for (int i = ch.length-1; i >= 0; i--){ System.out.print(ch[i]); }