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

切换通讯簿错误并跳过输入行

璩和璧
2023-03-14

因此,下面的编程作业的寓意是,我需要编写一个地址簿,其中包含第一个、最后一个、地址、城市/州、邮政编码。我必须使用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;
  }

}

共有1个答案

阴高刚
2023-03-14

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()有类似的问题,但不完全是这样。不过,如果真的是复制品,我提前道歉... (如果需要,我会添加更多信息)