gpt4 book ai didi

java - 搜索方法不起作用

转载 作者:行者123 更新时间:2023-12-01 15:16:59 25 4
gpt4 key购买 nike

基本上我有一个 HashMap ,并且搜索方法缺少键盘。下一步应该允许用户输入他们想要搜索的名称。没有错误。输出不允许用户输入他们想要搜索的名称。奇怪的是我可以使用 userInput 方法并且它工作得很好。这是我的代码:店铺声明

//Imports.
import java.util.Scanner;
//********************************************************************
public class MainApp
{
//The Scanner is declared here for use throughout the whole MainApp.
private static Scanner keyboard = new Scanner(System.in);

public static void main(String[] args)
{
new MainApp().start();

}
public void start()
{
//Create a Store named Store and add Employee's to the Store.
EmployeeStore Store = new EmployeeStore();
Store.add(new Employee ("James O' Carroll", 18,"hotmail.com"));

Store.add(new Employee ("Andy Carroll", 1171,"yahoo.com"));

Store.add(new Employee ("Luis Suarez", 7,"gmail.com"));
//********************************************************************

/*Test Code.
Store.searchByName("James O' Carroll");
Store.print();
Store.searchByEmail("gmail.com");
Employee andy = Store.searchByEmail("hotmail.com");
System.out.println(andy);
Employee employee = Store.searchByName("James O' Carroll");
if (employee != null)
{
employee.setEmployeeName("Joe");
employee.setEmployeeId(1);
employee.setEmployeeEmail("webmail.com");
Store.edit(employee);
Store.print();
}*/
//********************************************************************

int choice ;
System.out.println("Welcome to the Company Database.");
do
{
choice = MenuMethods.getMenuChoice(
"1.\tView All" +
"\n2.\tAdd" +
"\n3.\tDelete" +
"\n4.\tDelete All " +
"\n5.\tEdit" +
"\n6.\tSearch" +
"\n7.\tPrint"+
"\n8.\tExit", 8, "Please enter your choice:", "Error [1,8] Only");
//String temp = keyboard.nextLine(); This prevented entering the choice.
switch (choice)
{
case 1:
System.out.println("View All");
Store.print();

break;

case 2:
System.out.println("Add");
Employee employee = MenuMethods.userInput();
Store.add(employee);

break;

case 3:
System.out.println("Delete");
//Store.delete();


break;

case 4:
System.out.println("Delete All");
Store.clear();

break;
case 5:
System.out.println("Edit");
Employee employee2 = MenuMethods.userInput();
Store.searchByName(employee2.getEmployeeName());
if (employee2 != null)
{
employee2.setEmployeeName("Joe");
employee2.setEmployeeId(1);
employee2.setEmployeeEmail("webmail.com");
Store.edit(employee2);
Store.print();
}

break;
case 6:
System.out.println("Search");
Employee employee1 = MenuMethods.userInputByName();
Store.searchByName(employee1.getEmployeeName());


break;
case 7:
System.out.println("Print");
Store.print();

break;
case 8:
System.out.println("Exit");

break;
}


} while (choice != 8);

}
}

//Imports
import java.util.Scanner;
//********************************************************************

public class MenuMethods
{
private static Scanner keyboard = new Scanner(System.in);



//Methods for the Company Application menu.
//Method for validating the choice.
public static int getMenuChoice(String menuString, int limit, String prompt, String errorMessage)
{
System.out.println(menuString);
int choice = inputAndValidateInt(1, limit, prompt, errorMessage);
return choice;
}
//********************************************************************
//This method is used in the getMenuChoice method.
public static int inputAndValidateInt(int min, int max, String prompt, String errorMessage)
{
int number;
boolean valid;
do {
System.out.print(prompt);
number = keyboard.nextInt();
valid = number <= max && number >= min;
if (!valid) {
System.out.println(errorMessage);
}
} while (!valid);
return number;
}
//********************************************************************
public static Employee userInput()
{
String temp = keyboard.nextLine();
Employee e = null;
System.out.println("Please enter the Employee Name:");
String employeeName = keyboard.nextLine();
System.out.println("Please enter the Employee ID:");
int employeeId = keyboard.nextInt();
temp = keyboard.nextLine();
System.out.println("Please enter the Employee E-mail address:");
String employeeEmail = keyboard.nextLine();
return e = new Employee(employeeName , employeeId, employeeEmail);

}
//********************************************************************
public static Employee userInputByName()
{

Employee e = null;
System.out.println("Please enter the Employee Name:");
String employeeName = keyboard.nextLine();
System.out.println("Please enter the Employee Name:");

return e = new Employee(employeeName);

}
//********************************************************************



}

mainApp中的搜索方法

case 6:
System.out.println("Search");
Employee employee1 = MenuMethods.userInputByName();
Store.searchByName(employee1.getEmployeeName());


break;

实际的搜索方法。

public Employee searchByName(String employeeName) 
{
Employee employee = map.get(employeeName);
System.out.println(employee);
return employee;
}
//********************************************************************

userInputByName 方法。这似乎就是问题所在。

 public static Employee userInput()
{
String temp = keyboard.nextLine();
Employee e = null;
System.out.println("Please enter the Employee Name:");
String employeeName = keyboard.nextLine();
System.out.println("Please enter the Employee ID:");
int employeeId = keyboard.nextInt();
temp = keyboard.nextLine();
System.out.println("Please enter the Employee E-mail address:");
String employeeEmail = keyboard.nextLine();
return e = new Employee(employeeName , employeeId, employeeEmail);

}
//********************************************************************
public static Employee userInputByName()
{

Employee e = null;
System.out.println("Please enter the Employee Name:");
String employeeName = keyboard.nextLine();
System.out.println("Please enter the Employee Name:");

return e = new Employee(employeeName);

}
//********************************************************************

最佳答案

让我尽力吧。

首先,为什么你的userInputByName()中有两个println语句?

 public static Employee userInputByName()
{
Employee e = null;
System.out.println("Please enter the Employee Name:");
String employeeName = keyboard.nextLine();
System.out.println("Please enter the Employee Name:"); //!???

return e = new Employee(employeeName);
}

然后,在6的情况下,您只需调用searchByName方法,并不检查搜索是否成功。我建议:

case 6:
System.out.println("Search");
Employee employee1 = MenuMethods.userInputByName();
Employee foundEmployee = Store.searchByName(employee1.getEmployeeName());

if (foundEmployee != null) {
System.out.println("Found employee!");
} else {
System.out.println("Not Found!");
}

break;

关于java - 搜索方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11486120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com