Java 我怎样才能让它运行?

Java 我怎样才能让它运行?,java,arrays,loops,while-loop,stringbuilder,Java,Arrays,Loops,While Loop,Stringbuilder,好像我什么都试过了,但什么都没用。我如何才能获得此信息,以便用户可以决定是否添加其他名称?我可以在没有用户决定的情况下运行for循环 import java.util.Scanner; 导入java.text.DecimalFormat; 公共课第2部分{ 公共静态void main(字符串[]args){ 扫描仪s=新的扫描仪(System.in); 最终int学生人数=50; char choice1='n'; int i=0; int标准长度=0; 布尔选择=真; 字符串[]stdntNa

好像我什么都试过了,但什么都没用。我如何才能获得此信息,以便用户可以决定是否添加其他名称?我可以在没有用户决定的情况下运行for循环

import java.util.Scanner;
导入java.text.DecimalFormat;
公共课第2部分{
公共静态void main(字符串[]args){
扫描仪s=新的扫描仪(System.in);
最终int学生人数=50;
char choice1='n';
int i=0;
int标准长度=0;
布尔选择=真;
字符串[]stdntName=新字符串[学生大小];
String[]WIDNUM=新字符串[STUDENT_SIZE];
int[]EXM1=新int[学生大小];
int[]EXM2=新int[学生大小];
int[]EXM3=新int[学生人数];
int[]finalExm=新int[学生人数];
做{
对于(i=0;i
do while
循环似乎是多余的,可能会被删除

在输入第i个学生的数据时,最好检查输入的
y
,如果输入了
y
以外的任何字符,最好将其打断

更新
需要解决的其他问题:

  • 拆分全名时检查
    str
    的长度;将姓氏移到开头(而不仅仅是第二个名字)
  • 在读取
    选项1
    时,请使用
    nextLine()
    而不是
    next()
    ——因为
    \n
    未被使用,而使用
    nextLine
    读取的下一个名称将是一个空行
  • for(i=0;i1){
    StringBuilder sb=新的StringBuilder();
    sb.append(str[str.length-1]);//将姓氏移到开头
    某人加上(“,”);
    对于(intj=0;j0){
    某人附加(“”);
    }
    sb.append(str[j]);
    }
    stdntName[i]=sb.toString();
    }
    System.out.println(stdntName[i]);
    System.out.print(“是否要输入另一个?(y/n):”;
    choice1=s.nextLine().toLowerCase().charAt(0);//读取整行
    如果(选项1!=“y”){
    打破
    }
    }
    
    提示:只要询问用户是否希望在
    for
    循环结束时停止或继续,对
    for
    循环没有丝毫影响:无论发生什么情况,它都会继续运行。而
    do/while
    循环围绕着
    for
    循环,因此在
    for
    循环完成之前,它没有任何控制。出于某种原因,它仍然给我相同的错误消息错误消息和堆栈跟踪是什么?请编辑您的问题以将其包括在内。错误消息是线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:索引1超出了Part2.main(Part2.java:35)@Cheg18中长度1的界限,提供了更新