Java将数组从数组方法返回到主函数
上面写着:Java将数组从数组方法返回到主函数,java,arrays,methods,return,Java,Arrays,Methods,Return,上面写着: public static public static void main(String[] args) { System.out.print("Enter the number of student names to input: "); int studentNum = new Scanner(System.in).nextInt(); String students[ ] = new String[studentNum]; for(int i =
public static public static void main(String[] args) {
System.out.print("Enter the number of student names to input: ");
int studentNum = new Scanner(System.in).nextInt();
String students[ ] = new String[studentNum];
for(int i = 0; i<studentNum; i++){
students[ i ] = inputStudent(i+1);
}
}
public static String[] inputStudent(int i) {
String studentNum[] = new String[i];
for(int a=0; a<i; a++) {
System.out.print("Enter student name"+(a+1)+": ");
studentNum[a]=new Scanner(System.in).nextLine();
}
return studentNum;
}
students[ i ] = inputStudent(i+1);
附言:
不应修改主功能。您可以做的是更改:
incompatible types: String[] cannot be converted to String
到
由于学生
是一个字符串,您无法将数组直接分配给字符串
。通过使用Array.toString()
它将以字符串的形式返回数组内容的表示形式
再次查看您的问题,您无法修改主选项。在这种情况下,我们可以将inputStudent设置为返回字符串
类型
students[ i ] = Arrays.toString(inputStudent(i + 1));
您正在尝试将字符串数组分配给字符串
i、 e
inputStudent(int i)
返回数组,但您正试图将数组分配给学生[i]=inputStudent(i+1)代码>
作为
字符串[i]是元素字符串数组,它只接受字符串如果代码中有错误。主循环中不需要For循环
public static String inputStudent( final int id )
{
System.out.print("Enter student name at ID: "+id+": ");
return new Scanner( System.in ).next();
}
public static public static void main(字符串[]args){
System.out.print(“输入要输入的学生姓名数:”);
int studentNum=新扫描仪(System.in).nextInt();
字符串students[]=inputsudent(studentNum);
}
公共静态字符串[]inputStudent(int i){
String studentNum[]=新字符串[i];
对于(int a=0;a将您的方法更改为此。您不能将字符串数组分配给字符串。另外,为什么要在方法中循环?如果我理解正确,您希望将n个学生添加到学生数组中?您可以在主方法中循环,并为每个学生运行方法
public static public static void main(String[] args) {
System.out.print("Enter the number of student names to input: ");
int studentNum = new Scanner(System.in).nextInt();
String students[ ] = inputStudent(studentNum);
}
public static String[] inputStudent(int i) {
String studentNum[] = new String[i];
for(int a=0; a<i; a++) {
System.out.print("Enter student name"+(a+1)+": ");
studentNum[a]=new Scanner(System.in).nextLine();
}
return studentNum;
}
修改输入学生方法,使其仅返回单个学生
public static String inputStudent(int i) {
System.out.print("Enter student name");
String studentName = new Scanner(System.in).nextLine();
return studentName;
}
由于您规定不能修改主函数,因此必须将inputStudent函数的返回类型从String[]更改为String。这意味着您必须更改在该函数中存储数据的方式
因此,将字符串studentNum[]更改为字符串studentNum,而不是为数组的每个索引请求新的用户输入,而是一次请求以逗号分隔的所有输入,并将它们存储在studentNum中
根据您的标准,这是一种可能的方法。我了解您想要实现什么,下面的代码将解决您的问题,每行代码都有解释
public static String inputStudent(int i) {
String studentNam = null;
System.out.print("Enter student name"+i+": ");
studentNum=new Scanner(System.in).nextLine();
return studentNum;
}
publicstaticvoidmain(字符串[]args)引发异常{
System.out.print(“输入要输入的学生姓名数:”);
Scanner Scanner=新扫描仪(System.in);//获取扫描仪
int numOfStudents=scanner.nextInt();//从用户获取学生人数
String[]students=新字符串[numOfStudents];//创建字符串数组
int studentAdded=0;//计数器
scanner=new scanner(System.in);//重新创建扫描仪,否则将跳过第一个学生。
做{
System.out.println(“输入学生姓名”+(学生添加+1)+“:”;
String studentName=scanner.nextLine();//询问学生姓名
students[studentAdded]=studentName;//将学生名添加到数组中
studentAdded++;//将1添加到计数器
}while(studentAdded
你能解释一下inputStudent函数的用途吗?它不能返回student数组,它应该读取一个student并返回它。你真的需要在这个函数中读取n个student吗?为什么?如果他不能修改main,那么他就不能返回字符串[]从inputStudent,所以它必须被更改。主方法仍然不会用这种方式修改。我猜他在这两个方法中都放错了逻辑。只有一个方法内部应该有一个for循环。我同意Python…正在确认你的答案。还有一点,他不能在不修改的情况下返回该方法中的“n”个学生数g main:)
public static String inputStudent(int i) {
System.out.print("Enter student name");
String studentName = new Scanner(System.in).nextLine();
return studentName;
}
public static String inputStudent(int i) {
String studentNam = null;
System.out.print("Enter student name"+i+": ");
studentNum=new Scanner(System.in).nextLine();
return studentNum;
}
public static void main(String[] args) throws Exception {
System.out.print("Enter the number of student names to input: ");
Scanner scanner = new Scanner(System.in); // get the scanner
int numOfStudents = scanner.nextInt(); // get the number of students from user
String [] students = new String [numOfStudents]; // create an array of string
int studentAdded = 0; // counter
scanner = new Scanner(System.in); // recreate the scanner, if not it will skip the first student.
do {
System.out.println("Enter student name "+(studentAdded+1)+": ");
String studentName = scanner.nextLine(); // ask for student name
students[studentAdded] = studentName; // add student name to array
studentAdded++; // add 1 to the counter
} while (studentAdded < numOfStudents); // loop until the counter become the same size as students number
System.out.println("students = " + Arrays.toString(students)); // and show the result
}