簡體   English   中英

在數組(或數組列表)中搜索掃描儀用戶給出的特定人員(值),如果找到,則將該數組中的所有值返回/打印到掃描儀

[英]Search an Array (or ArrayList) for a specific person(value), given by scanner user and if found, return/print all values in that array to the scanner

我制作了一個帶有菜單的交互式掃描儀。 在我的主菜單選項 1 中,我希望用戶輸入姓名或號碼,然后在我的 arrays 或 ArrayList 中搜索該特定值。 如果找到,我想返回同一個數組中的所有值,打印到掃描儀。

我花了一天的大部分時間來嘗試完成這項工作。 (請像對待新手一樣回答)就是我;)

我的主要:

        String[] employee1Array = {fitnessEmployee1.getName() + "       ", fitnessEmployee1.getCPR() + "   ", String.valueOf(fitnessEmployee1.getHours()) + "          ", String.valueOf(fitnessEmployee1.getSalary()) + "       ", fitnessEmployee1.getVacation()};
        String[] employee2Array = {fitnessEmployee2.getName() + "        ", fitnessEmployee2.getCPR() + "   ", String.valueOf(fitnessEmployee2.getHours()) + "          ", String.valueOf(fitnessEmployee2.getSalary()) + "      ", fitnessEmployee2.getVacation()};
        String[] employee3Array = {fitnessEmployee3.getName() + "        ", fitnessEmployee3.getCPR() + "   ", String.valueOf(fitnessEmployee3.getHours()) + "          ", String.valueOf(fitnessEmployee3.getSalary()) + "       ", fitnessEmployee3.getVacation()};
        String[] employee4Array = {fitnessEmployee4.getName() + "     ", fitnessEmployee4.getCPR() + "   ", String.valueOf(fitnessEmployee4.getHours()) + "          ", String.valueOf(fitnessEmployee4.getSalary()) + "      ", fitnessEmployee4.getVacation()};

        String[][] allEmployeesArray = {employee1Array,employee2Array,employee3Array,employee4Array};





        Scanner login = new Scanner(System.in);
        System.out.println("Please type in your username:");

        String userName = login.nextLine();
        if (userName.equals(userName1)) {
            System.out.println("Welcome " + userName);
        } else {

            System.out.println("Incorrect User - limited choices available");

        }


        String userChoice; 

        Scanner input = new Scanner(System.in);


        while(true){

            System.out.println("----Available Choices----");
            System.out.println(" Press 1 for search for a specific employee or member");
            System.out.println(" Press 2 to exit");

            System.out.println("\nPlease choose from the list:\n");


            userChoice = input.next();

            String answer = "null";

            switch(userChoice){
                case "1":

                    System.out.println("Please write the name or CPR of the person you are searching for." );
                     answer = input.next();


                    System.out.println("Searching for " + answer);
                    for (int i = 0; i < allEmployeesArray.length; i++) {
                        System.out.println();

                            if (allEmployeesArray[i].equals(answer)) {
                                System.out.println(Arrays.toString(allEmployeesArray[i]));
                            }else{
                                System.out.println("Person not found");
                            }


                    }

                    System.out.println();
                    System.out.println("done with job number 1");
                    break;


                case "2":
                    //Afslut scanneren
                    System.out.println("Exiting...");
                    System.exit(0);
                default:

                    System.out.println("That is not a valid choice. Please try again...");
            }
        }



    }

}

我通過創建重復事物的功能/方法在某種程度上簡化了您的FitnessMain class。 請注意,我還將FitnessEmployees class 重命名為FitnessEmployee ,因為它的舊名稱引起了混亂。 以下是工作程序:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class FitnessMain {

    public static void udskrivArray(String[][] a) {
        for (int row = 0; row < a.length; row++) {
            System.out.println();
            for (int column = 0; column < a[row].length; column++) {
                System.out.print(a[row][column] + " ");
            }
        }

    }

    public static void udskrivArray2(String[][] a) {
        for (int row = 0; row < a.length; row++) {
            System.out.println();
            for (int column = 0; column < 2; column++) {
                System.out.print(a[row][column] + " ");
            }
        }
    }

    static void printEmployee(FitnessEmployee employee) {
        System.out.printf("%-12s", employee.getName());
        System.out.printf("%-14s", employee.getCPR());
        System.out.printf("%-12d", employee.getHours());
        System.out.printf("%-12s", employee.getSalary());
        System.out.printf("%-3s", employee.getVacation());
    }

    static String[] getMemberArray(FitnessMember fitnessMember) {
        String[] memberFieldsArr = { fitnessMember.getName(), fitnessMember.getCPR(), fitnessMember.getMemberType(),
                String.valueOf(fitnessMember.getFee()) };
        return memberFieldsArr;
    }

    static String[] getEmployeeArray(FitnessEmployee employee) {
        String[] employeeFieldsArray = { employee.getName(), employee.getCPR(), String.valueOf(employee.getHours()),
                String.valueOf(employee.getSalary()), employee.getVacation() };
        return employeeFieldsArray;
    }

    public static void main(String[] args) {

        int salaryAdmin = 23000;
        int salaryInstructor = 456;
        int hoursTove = 20;
        int hoursHenning = 15;
        // Employees data
        FitnessEmployee fitnessEmployee1 = new FitnessEmployee("Claus", "221175-1011", 37, salaryAdmin, "5",
                "Administrative");
        FitnessEmployee fitnessEmployee2 = new FitnessEmployee("Tove", "011080-1014", 20,
                salaryInstructor * hoursTove, "", "Instructor");
        FitnessEmployee fitnessEmployee3 = new FitnessEmployee("Anna", "011080-1012", 37, (salaryAdmin), "5",
                "Administrative");
        FitnessEmployee fitnessEmployee4 = new FitnessEmployee("Henning", "011080-1015", 20,
                (salaryInstructor * hoursHenning), " ", "Instructor");

        // Members data
        FitnessMember fitnessMembers1 = new FitnessMember("Morten", "130195-1303", "Full", 299, 1);
        FitnessMember fitnessMembers2 = new FitnessMember("Martin", "221175-1011", "Basic", 199, 2);
        FitnessMember fitnessMembers3 = new FitnessMember("Martina", "050970-1409", "Full", 299, 3);
        FitnessMember fitnessMembers4 = new FitnessMember("Marcel", "221175-1012", "Basic", 199, 4);

        System.out.println("FITNESS EMPLOYEES \n");

        System.out.printf("%-12s", "Name");
        System.out.printf("%-14s", "CPR");
        System.out.printf("%-12s", "Hours");
        System.out.printf("%-12s", "Salary");
        System.out.printf("%-3s", "Vacation\n");

        System.out.println();
        for (int i = 0; i < 62; i++) {
            System.out.print("*");
        }
        System.out.println();

        printEmployee(fitnessEmployee1);
        printEmployee(fitnessEmployee2);
        printEmployee(fitnessEmployee3);
        printEmployee(fitnessEmployee4);

        // Array of some employees
        String[] employee1Array = getEmployeeArray(fitnessEmployee1);
        String[] employee2Array = getEmployeeArray(fitnessEmployee2);
        String[] employee3Array = getEmployeeArray(fitnessEmployee3);
        String[] employee4Array = getEmployeeArray(fitnessEmployee4);

        String[][] allEmployeesArray = { employee1Array, employee2Array, employee3Array, employee4Array };

        System.out.println();
        for (int i = 0; i < 45; i++) {
            System.out.print("=");
        }
        System.out.println();

        System.out.println("\n\n\nFITNESS MEMBERS");
        System.out.printf("%-12s", "Name");
        System.out.printf("%-14s", "CPR");
        System.out.printf("%-12s", "Member type");
        System.out.printf("%-12s", "Fee");

        System.out.println();
        for (int i = 0; i < 62; i++) {
            System.out.print("*");
        }
        System.out.println();

        String[] member1Array = getMemberArray(fitnessMembers1);
        String[] member2Array = getMemberArray(fitnessMembers2);
        String[] member3Array = getMemberArray(fitnessMembers3);
        String[] member4Array = getMemberArray(fitnessMembers4);;

        ArrayList<String[]> fitnessMembersArrayList = new ArrayList<>();
        fitnessMembersArrayList.add(member1Array);
        fitnessMembersArrayList.add(member2Array);
        fitnessMembersArrayList.add(member3Array);
        fitnessMembersArrayList.add(member4Array);

        String[][] allMembersArray = { member1Array, member2Array, member3Array, member4Array };

        udskrivArray(allMembersArray);

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

        for (int i = 0; i < 45; i++) {
            System.out.print("=");
        }

        System.out.println("\n\n\nEMPLOYEES & MEMBERS Name and cpr");
        System.out.printf("%-12s", "Name");
        System.out.printf("%-14s", "CPR");
        System.out.println();

        for (int i = 0; i < 62; i++) {
            System.out.print("*");
        }

        udskrivArray2(allEmployeesArray);
        udskrivArray2(allMembersArray);

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

        System.out.println();

        String userName1 = "Faisal";

        Scanner login = new Scanner(System.in);
        System.out.println("Please type in your username:");

        String userName = login.nextLine();
        if (userName.equals(userName1)) {
            System.out.println("Welcome " + userName);
        } else {
            System.out.println("Incorrect User - limited choices available");
        }

        String userChoice; // variable som opbevarer det indtastede

        Scanner input = new Scanner(System.in);

        // loop menuen indtil brugeren vælger at afslutte
        while (true) {
            // Vis valgmulighederne
            System.out.println("----Available Choices----");
            System.out.println(" Press 1 for search for a specific employee or member");
            System.out.println(" Press 2 to list and count all employees (CPR)");
            System.out.println(" Press 3 to list the current salaries of all the employees");
            System.out.println(" Press 4 to exit");

            System.out.println("\nPlease choose from the list:\n");

            userChoice = input.next();

            String answer = "";

            switch (userChoice) {
            case "1":

                System.out.println("Please write the name or CPR of the person you are searching for.");
                answer = input.next();

                System.out.println("Searching for " + answer);
                boolean found=false;
                String[] employeeFields = null;
                for (int i = 0; i < allEmployeesArray.length; i++) {
                    System.out.println();
                    if (allEmployeesArray[i][0].equals(answer)) {
                        found=true;
                        employeeFields=allEmployeesArray[i];
                        break;
                    }
                }

                if(found)
                    System.out.println(Arrays.toString(employeeFields));
                else 
                    System.out.println("Person not found");

                System.out.println();
                System.out.println("done with job number 1");
                break;

            case "2":

                String[] currentEmployees = { fitnessEmployee1.getCPR(), fitnessEmployee2.getCPR(),
                        fitnessEmployee3.getCPR(), fitnessEmployee4.getCPR() };
                System.out.println("We currently have " + currentEmployees.length + " employees (Listed by CPR).");
                System.out.println(Arrays.toString(currentEmployees));

                System.out.println("\nPlease make your next choice\n");
                break;

            case "3":

                int[] employeesSalary = { fitnessEmployee1.getSalary(), fitnessEmployee2.getSalary(),
                        fitnessEmployee3.getSalary(), fitnessEmployee4.getSalary() };
                System.out.println("These are the current salaries of our employees:");
                for (int i = 0; i < employeesSalary.length; i++) {
                    System.out.println(+employeesSalary[i]);
                }

                System.out.println("\nPlease make your next choice\n");
                break;

            case "4":
                // Afslut scanneren
                System.out.println("Exiting...");
                System.exit(0);
            default:

                System.out.println("That is not a valid choice. Please try again...");
            }
        }
    }
}

要查看 object 是否在 List 中,您可以使用.contains() function 其中所有 List 實現,擴展 Java 列表接口(例如)。

所以你可以這樣做:

if(list.contains(object){
    //Print items
}

對於數組,您可以使用 for 循環對其進行迭代,也可以使用從數組中創建一個 List

Arrays.toList(yourArray)

然后對列表執行相同的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM