请帮我看一下,怎么改,想了半天都不知道怎么办

package javashiyan3;import java.util.Scanner;public class java3 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入一串字符"); String str; Scanner sc = new Scanner(System.in); str=sc.nextLine(); char a[]; a = new char[10]; int b,c,d; for(b=0;b<=str.length();b++) { a[b]=str.charAt(b); } for(c=0;c<=a.length;c++) { if(a[c]>97&&a[c]<123) a[c]=(char)((int)a[c]-32); } for(d=0;d<=a.length;d++) { System.out.println(a[d]); } }}

写成Java代码。这样太乱了


 public static void main(String[] args) {
        System.out.println("请输入一串字符");
        String str;
        Scanner sc = new Scanner(System.in);
        str = sc.nextLine();
        char a[];
        a = new char[10];
        int b, c, d;
        for (b = 0; b < str.length(); b++) {
            a[b] = str.charAt(b);
        }
        for (c = 0; c < a.length; c++) {
            if (a[c] > 97 && a[c] < 123) a[c] = (char) ((int) a[c] - 32);
        }
        for (d = 0; d < a.length; d++) {
            System.out.println(a[d]);
        }
    }

你这个报错是因为下标越界了。所以for循环里的 d <= a.length。应该改为d < a.length