当前位置: 首页 > 知识库问答 >
问题:

将数组列表打印到另一个方法

叶国兴
2023-03-14

我非常困惑,因为如何才能从另一个方法获取ArrayList,并将其打印到另一方法?所以我这里的问题是,我的代码是关于学生注册系统的,它有两个方法,即admin和student,所以从admin方法,我们可以添加我们想要的数组,当我们在admin方法中打印出来时,它可以正常工作。但当我试图用学生法打印出来时,似乎没有用。代码如下:

import java.util.*;

public class myStudent {

boolean logins = false;
int myId;
String addCourse="No Record";
String NewCourse;
String removeCourse="No Record";
int modifyCourse;
String password = null;
ArrayList test = new ArrayList();

public static void main(String[] args){

    myStudent obj0 = new myStudent();

    obj0.login();

}

void login(){
    myStudent obj1 = new myStudent();
    Scanner myScanner = new Scanner(System.in);

    System.out.println("  **Student Registration**");
    System.out.println("\t--LOGIN--");

    System.out.println("\n1)Login as student \n2)Login as admin \n3)Exit");
    System.out.print(">");
    int optionMenu = myScanner.nextInt();

    if(optionMenu == 1){
        obj1.showMenuStudent();
    }
    else if(optionMenu == 2){
        obj1.showMenuAdmin();
    }
    else if(optionMenu == 3){
        System.out.println("THANK YOU!");
        System.exit(0);
    }
 }

 void showMenuAdmin(){


        if (!logins) {
    //String myPass;
    Scanner myScanner = new Scanner(System.in);

    System.out.println("\n--LOGIN--");       
    try{
    System.out.print("Admin ID : ");
    myId = myScanner.nextInt();
    }
    catch(Exception e){
        System.out.println("INVALID ID!");
        System.exit(0);
    }

    System.out.print("Admin Password : ");
    password = myScanner.next();

        logins = true;
    }


    char option;
    Scanner myScanner = new Scanner(System.in);


    System.out.println("\n--WELCOME--");
    System.out.println("A. Create Course");
    System.out.println("B. Drop Course");
    System.out.println("C. Modify Course");
    System.out.println("D. Display Course");
    System.out.println("E. Logout");

    do
    {
    System.out.print("Enter An Option > ");
    option = myScanner.next().charAt(0);
    System.out.print("\n");


    switch(option){
        case 'A':

            System.out.print("Create Course(Maximum is 6) :");
            addCourse = myScanner.next();
            test.add(addCourse);
            System.out.println("\nCourse Added Successfully!");
            display();

        break;

        case 'B':


            Object[] myArray = test.toArray();

            System.out.println("Current Courses List: ");
            int k=1;
            for(int i=0; i < myArray.length; i++){

            System.out.println(k + ". " + myArray[i]);
            k++;
            }

                System.out.println("Enter course name you want to remove :");
                System.out.println("Enter 'back' to cancel");
                System.out.print(">");
                removeCourse = myScanner.next();
                if(removeCourse!="back"){
                test.remove(removeCourse);
                System.out.println("\nSucceed");
                display();
                }else
                display();

            break;

        case 'C':
            Object[] myArray2 = test.toArray();

            System.out.println("Current Courses List: ");
            int m=1;
            for(int i=0; i < myArray2.length; i++){

            System.out.println(m + ". " + myArray2[i]);
            m++;
            }

            System.out.println("Select course you want to modify :");

            System.out.print(">");
            modifyCourse = myScanner.nextInt();

            try{
            if(modifyCourse==1){
                System.out.print("Change to :");
                NewCourse=myScanner.next();
                test.set(0, NewCourse);
                System.out.println("Succeed!");
                display();
            }
            else if(modifyCourse==2){
                System.out.print("Change to :");
                NewCourse=myScanner.next();
                test.set(1, NewCourse);
                System.out.println("Succeed!");
                display();
            }else if(modifyCourse==3){
                System.out.print("Change to :");
                NewCourse=myScanner.next();
                test.set(2, NewCourse);
                System.out.println("Succeed!");
                display();
            }else if(modifyCourse==4){
                System.out.print("Change to :");
                NewCourse=myScanner.next();
                test.set(3, NewCourse);
                System.out.println("Succeed!");
                display();
            }else if(modifyCourse==5){
                System.out.print("Change to :");
                NewCourse=myScanner.next();
                test.set(4, NewCourse);
                System.out.println("Succeed!");
                display();
            }else if(modifyCourse==6){
                System.out.print("Change to :");
                NewCourse=myScanner.next();
                test.set(5, NewCourse);
                System.out.println("Succeed!");
                display();
            }
            else{
                System.out.print("Invalid!");
                display();
            }
            }
            catch(Exception e){
                System.out.print("Invalid, Course not available!");
                display();
            }

            break;


        case 'D':

            Object[] myArray3 = test.toArray();

            System.out.println("Courses List: ");
            int j=1;
            for(int i=0; i < myArray3.length; i++){

            System.out.println(j + ". " + myArray3[i]);
            j++;
            }
            display();
        break;
        }

    }while(option != 'E');

   System.out.println("Logged Out Successfully.Thank You!");
   login();


 }

 void showMenuStudent(){

    if (!logins) {

    Scanner myScanner = new Scanner(System.in);

    System.out.println("\n--LOGIN--");

    try{
    System.out.print("Student ID : ");
    myId = myScanner.nextInt();
    }
    catch(Exception e){
        System.out.println("INVALID ID!");
        System.exit(0);
    }

    System.out.print("Student Password(Default is IC Number) : ");
    password = myScanner.next();

        logins = true;
    }

    Object[] myArray4 = test.toArray();
    int n=1;
    for (Object myArray41 : myArray4) {
        System.out.println(n + ". " + myArray41);
        n++;
    }


 }

 void display(){
    showMenuAdmin();
 }
 }

我真的希望有人能理解我的问题,并努力解决它..请:(也谢谢你

以下是从开始到结果的输出:

输出:

学生注册

--登录--

1)以学生身份登录

2)以管理员身份登录

3)退出

2.

--登录--

管理员ID:123

管理员密码:321

--欢迎--

A.创建课程

B. 掉落课程

C.修改课程

D、 展示课程

E.注销

输入选项

创建课程(最多6个):CS123

课程添加成功!

--欢迎--

A.创建课程

B. 掉落课程

C.修改课程

D、 展示课程

E.注销

输入选项

已成功注销。谢谢大家!

学生注册

--登录--

1)以学生身份登录

2)以管理员身份登录

3)退出

1.

--登录--

学生证 : 123

学生密码(默认为IC号):321

[]输入一个选项

在这一点上,idk为什么它这样运行,我只想打印出管理员在数组中输入的内容,但它就像学生方法只是再次重新运行管理方法,即使我从未调用过它,它也表明数组是空的。哪一部分是我的错误?还是我在这里错过了什么?:(

共有1个答案

邵旺
2023-03-14

所以我运行了你的代码并发现了问题。您正在每次login()创建一个新的my学生对象,如果您:

    < li >删除行< code > my student obj 1 = new my student(); < li >并替换< code > obj 1 . showmenustudent(); with < code > showMenuStudent() < li >并替换< code > obj 1 . showmenuadmin();与< code > showMenuAdmin();

您将修复此问题,并获得所需的输出。这是我得到的输出,希望它与您想要的同步:

  **Student Registration**
    --LOGIN--

1)Login as student 
2)Login as admin 
3)Exit
>2

--LOGIN--
Admin ID : 1
Admin Password : 1

--WELCOME--
A. Create Course
B. Drop Course
C. Modify Course
D. Display Course
E. Logout
Enter An Option > A

Create Course(Maximum is 6) :CS123

Course Added Successfully!

--WELCOME--
A. Create Course
B. Drop Course
C. Modify Course
D. Display Course
E. Logout
Enter An Option > E

Logged Out Successfully.Thank You!
  **Student Registration**
    --LOGIN--

1)Login as student 
2)Login as admin 
3)Exit
>1
1. CS123
Enter An Option > 
 类似资料:
  • 很抱歉这太模糊了,但代码太多了。 这是一个五卡梭哈游戏。基本上,我试图将对象添加到另一个数组列表中的数组列表中。 这是我创建玩家数组并将手类中的数组添加到其中的地方,至少我认为这就是正在发生的事情: 稍后,我尝试在循环交易中将牌添加到玩家阵列中的手牌阵列中。由于有五张牌,第一个循环进行了五次。第二个是玩家数组的长度(玩家总数),每次应该添加一张卡。 Deck类中有一个deal方法,由以下方法初始化

  • 问题内容: 我想将数组打印到文件中。 我希望文件看起来像这样的代码完全相似。 假设$ abc是一个数组。 是否有任何一种解决方案,而不是每次外观都是常规的。 PS-我目前使用序列化,但是我想使文件可读,因为使用序列化数组很难读取。 问题答案: 无论是或将返回输出,而不是打印出来的。 PHP手册中的示例 然后,您可以使用保存。或在写入文件时直接将其返回:

  • 我肯定这是一个愚蠢的问题,但我找不到一个简单的方法将一个列表按另一个列表分组。我在网上搜索了很多,但我只找到了带有类属性或排序元素的示例。 我有一个带有键的字符串列表,例如: 和一个我想按键列表分组的int列表,例如: 因此结果应该是一个包含子列表的列表,如下所示: 或者也可以得到指数。提前道谢。

  • 我想创建一个代码,帮助我将元素从“allWords”ArrayList复制到“差异词”。但他在不同单词ArrayList中的时间我希望一个单词只出现一个,消除“差异词”ArrayList中的冗余。 这是我想出的代码,我没有得到任何输出。 导入java。util。ArrayList; 公共类复制元素{ }

  • 本文向大家介绍Mysql将一个表中的某一列数据复制到另一个表中某一列里的方法,包括了Mysql将一个表中的某一列数据复制到另一个表中某一列里的方法的使用技巧和注意事项,需要的朋友参考一下 mysql复制表中的一列到另一个表中 有时候,我们需要复制某个字段一整列的数据到另外一个新的字段中,这很简单,SQL可以这么写: 大概写法如下: 有Navicat等工具更好,可以直接选中一列数据,拷贝粘贴到你需要

  • 以下是传入的JSON: 这里的JSONObject[“time”]不是字符串是我将它放入JSONArray时遇到的错误