我的程序让用户将一个客户名称和客户电话号码添加到一个arraylist。然后,如果用户希望他们可以根据他们输入的内容搜索(arraylist)客户。如果用户输入“nate”的名称并且仅在nat中键入以进行搜索。它应该显示包含nat的所有匹配。
我似乎无法正确使用for循环,如果确实如此。当我使用.equals方法时,它只匹配确切的内容。
现在我已将.equals更新为.contains。新问题是 for(客户c:客户)无效。客户是我创建对象的类,客户是包含Customer对象的arraylist。
在:for(客户c: 错误消息说:
错误:(107,31)java:不兼容的类型:java.lang.Object无法转换为Customer>
public class CustomerDirectory
{
//Shorten Scanner
static Scanner keyboard = new Scanner(System.in);
static ArrayList customers = new ArrayList();
public static void main(String[] args)
......
.......
主类中的方法,用于向arraylist添加客户名称和电话号码。
public static void addCustomer()
{
System.out.print("Enter new name: ");
String name = keyboard.nextLine();
name = keyboard.nextLine();
System.out.print("Enter new phone number: ");
String number = keyboard.nextLine();
Customer newCustomer = new Customer(name, number);
customers.add(newCustomer);
}
public static void findCustomer()
{
System.out.print("Enter name of customer to find: ");
String findName = keyboard.nextLine();
findName = keyboard.nextLine();
if (findName.equals(" "))
{
System.out.println("You did not enter a name.");
}
else
{
for (Customer c : customers )
{
if (c.getCustomerName().contains(findName) )
{
System.out.println(c.getCustomerName());
}
}
}
}
创建要进入数组列表的对象的类。 班级客户 { static String customerName; 串电话;
public Customer(String customerName, String telePhone)
{
setCustomerName(customerName);
setTelePhone(telePhone);
}
public static String getCustomerName()
{
return customerName;
}
public void setCustomerName(String customerName)
{
//Make the user input lowercase
customerName = customerName.toLowerCase();
if (customerName.equals(""))
{
System.out.println("You did not enter a name. Did not create new
customer.");
}
else if (customerName.length() > 25)
{
this.customerName = customerName.substring(0, 25);
}
else
{
this.customerName = customerName;
}
}
public String getTelePhone()
{
return telePhone;
}
public void setTelePhone(String telePhone)
{
if (telePhone.equals(""))
{
System.out.println("You did not enter a telephone number. Did not
create new customer.");
}
else
{
this.telePhone = telePhone;
}
}
}
答案 0 :(得分:1)
尝试将var row_value = tab.cols[i].row_id;
$('#row_list option[value=' + row_value + ']').prop('selected', true);
条件更改为:
if
当且仅当if时,java.lang.String.contains()方法返回true 该字符串包含指定的char值序列。
此外,您不需要2行来接受用户输入:
if (c.getCustomerName().contains(findName) )
删除第二行。
答案 1 :(得分:1)
ArrayList引用需要声明类型。 您还没有在ArrayList对象创建中提到任何类型,因此它将客户视为类型对象。
尝试替换下面的主要课程
public class CustomerDirectory {
// Shorten Scanner
static Scanner keyboard = new Scanner(System.in);
static ArrayList<Customer> customers = new ArrayList<Customer>();
public static void main(String[] args) {
}
......
......
这一行非常重要:static ArrayList<Customer> customers = new ArrayList<Customer>();