因此,下面的编程作业的寓意是,我需要编写一个地址簿,其中包含第一个、最后一个、地址、城市/州、邮政编码。我必须使用switch语句,但不能使用ioexception或缓冲读取器。LiFiAddressBook文件与LastFirstChapter10分开(但链接在下面的同一框中)。它似乎编译正确,但它在以下错误之间切换:不能在switch语句中使用布尔值,跳过邮政编码输入以选择要搜索的选项,等等。我现在没有确切的错误,因为我正在工作,无法编译以输出确切的错误。只是寻求建议或更正。
“LiFiAddressBook.java类实例变量:名字(字符串)姓氏(字符串)街道地址(字符串)城市状态(字符串)邮政编码(字符串)addEntry方法:获取上面变量的输入。参见底部示例中的示例。搜索方法:接收ArrayList作为参数输出搜索菜单(参见底部示例)使用开关并搜索ArrayList指定的字段。如果找到条目则返回索引号,如果没有找到则返回-1显示方法:打印结果,如底部示例所示。”
LiFiAddressBook.java:33:错误:不兼容的类型开关(isFind1){^必需:int找到:布尔1错误
import java.util.ArrayList;
import java.util.Scanner;
public class LastFirstChapter10
{
public static void main(String [] args)
{
ArrayList<LiFiAddressBook> aBook = new ArrayList<LiFiAddressBook>();
String searchStr = null;
int field = 0;
Scanner stdIn = new Scanner(System.in);
int option = 0; ;
for(int count=0; count<1 ; count++)
{
LiFiAddressBook ab = new LiFiAddressBook();
System.out.println("Please Enter First Name: ");
ab.setFirstName(stdIn.next());
System.out.println("Please Enter Last Name: ");
ab.setLastName(stdIn.next());
System.out.println("Please Enter Street Address: ");
ab.setStreetAddress(stdIn.next());
System.out.println("Please Enter City, State: ");
ab.setCityState(stdIn.next());
System.out.println("Please Enter Zip Code: ");
ab.setZipCode(stdIn.next());
aBook.add(ab);
System.out.println("Enter Search Option:\n"+
"1. First Name\n"+
"2. Last Name\n"+
"3. Street Address\n"+
"4. City, State\n"+
"5. Zip Code\n");
option = stdIn.nextInt();
System.out.println("Enter your search string: ");
searchStr = stdIn.nextLine();
int foundIndex = LiFiAddressBook.search(aBook, searchStr,
field);
System.out.println();
if(foundIndex > -1)
{
LiFiAddressBook abc = aBook.get(foundIndex);
abc.display();
}
else {
System.out.println("No entry is found.");
} // end else
} //end for
} //end method
} //end class
import java.util.ArrayList;
public class LiFiAddressBook {
private String firstName;
private String lastName;
private String streetAddress;
private String cityState;
private String zipCode;
public LiFiAddressBook() {
}
public LiFiAddressBook(String firstName,String lastName, String streetAddress,
String cityState, String zipCode) {
this.firstName = firstName;
this.lastName = lastName;
this.streetAddress = streetAddress;
this.cityState = cityState;
this.zipCode = zipCode;
}
public static int search(ArrayList<LiFiAddressBook> aBook, String searchStr, int field)
{
if(aBook != null) {
boolean isFound = false;
for(int i=0; i < aBook.size(); i++) {
LiFiAddressBook ab = aBook.get(i);
switch(isFound) {
case 1:
//if(field == 1)
isFound = ab.getFirstName().equals(searchStr.trim());
case 2:
//if(field == 2)
isFound = ab.getLastName().equals(searchStr.trim());
case 3:
//if(field == 3)
isFound = ab.getStreetAddress().equals(searchStr.trim());
case 4:
//if(field == 4)
isFound = ab.getCityState().equals(searchStr.trim());
case 5:
//if(field == 5)
isFound = ab.getZipCode().equals(searchStr.trim());
}
if(isFound)
return i;
}
}
return -1;
}
public void display() {
System.out.println("First Name: "+this.firstName);
System.out.println("Last Name: "+this.lastName);
System.out.println("Street Address: "+this.streetAddress);
System.out.println("Zip Code: "+this.zipCode);
System.out.println("City, State: "+this.cityState);
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getStreetAddress() {
return streetAddress;
}
public void setStreetAddress(String streetAddress) {
this.streetAddress = streetAddress;
}
public String getCityState() {
return cityState;
}
public void setCityState(String cityState) {
this.cityState = cityState;
}
public String getZipCode() {
return zipCode;
}
public void setZipCode(String zipCode) {
this.zipCode = zipCode;
}
}
switch语句并非真正用于ArrayList。。我很确定它只做整数,现在在新版本的Java字符串中。我建议改用for()
语句。。。。不确定您还将在其他地方使用该开关,但要有创意:)
问题内容: 我正在尝试使用接收输入: 但是该命令只是被跳过而返回一个空字符串。我怎么解决这个问题? 问题答案: 该方法不会占用整数后的换行符,因此在调用该方法时,它仅读取整数后的换行符。 例 如果您输入以下内容: 该调用使用了而不是换行符: 现在,当您调用它时,它消耗了第一行的其余部分,该行仅包含换行符。 解 尝试丢弃整数后的其余行: 或者使用一致的方式读取每一行,然后自己将字符串解析为整数:
我正在尝试制作一个地址簿,提示您输入三个人的第一个,最后一个街道地址,城市,州和邮政编码。 然后能够搜索用户输入的任何信息,然后显示该人的所有信息。 我已经设法让它提示用户添加信息,但我似乎不知道如何在数组列表中搜索信息。
FAQs in section [15]: [15.1] 为什么应该用 <iostream> 而不是传统的 <cstdio>? [15.2] 当键入非法字符时,为何我的程序进入死循环? [15.3] 那个古怪的while (std::cin >> foo)语法如何工作? [15.4] 为什么我的输入处理会超过文件末尾? [15.5] 为什么我的程序在第一个循环后,会忽略输入请求呢? [15.6]
我对围棋语言比较陌生。尽管我不希望如此,但我可能会用一个愚蠢的问题来打扰你。我先道歉,以防万一... 下面是我的示例:我定义了一个worker()函数,它作为一组并发Go例程从main()调用。输入和输出数据通过片类型[]int的输入和输出通道提供。在一种情况下,一切正常,在另一种情况下,结果有误。请参阅代码中的注释和代码下面的程序输出。 老实说,我看不出这两种代码变体之间的实际区别。我错过了什么
我有一个与Docker和Cypress服务器。docker使用以下命令启动Cypress: docker run-it-v$PWD:/var/www/html/test-w/var/www/html/test-cypress/included:6.5.0 很好,效果很好:) 我尝试通过gitlab ci调用此设置。在gitlab Ci中,我使用SSH连接到服务器,并启动命令:SSHroot@MY_
这里是Java新手,尝试扫描下面表单中的输入: 3 3 3 101 000 101 拜托,有更有经验的人能教我如何解决这个问题吗?我发现一些问题与。nextline()和。nextint()有类似的问题,但不完全是这样。不过,如果真的是复制品,我提前道歉... (如果需要,我会添加更多信息)