2011-02-25 3 views
1

주소록에서 자바의 항목 점검 : 추가하고 내가 주소록이 할 수있는 프로그램이

  • 업데이트에 항목
  • 모두보기 항목 항목을 삭제 출품작
  • 추가

    1. 보기 특정 항목

    모든 기능은 물론,하지만 내 문제는 내가 t를 원하는 것입니다

    public void addEntry() { 
    
         entry[counter] = new AddressBookEntry(); 
         entry[counter].setName(getNonBlankInput("Enter Name: ")); 
         entry[counter].setAdd(getNonBlankInput("Enter Address: ")); 
         entry[counter].setPhoneNo(getNonBlankInput("Enter Phone No.: ")); 
         entry[counter].setEmail(getNonBlankInput("Enter E-mail Address: ")); 
         counter++; 
    
    } 
    

    은 사용자 입력을 필터링 할 몇 가지 조건을 추가 제발 도와주세요 : 그것은 이미

    이 내 addEntry 방법을 존재하는 경우 사용자가 NAME를 입력되면 O를 확인합니다. 마찬가지로, 사용자가 이미 존재하는 이름을 입력 한 경우. 사전

    당신은 주소록로 추가 직접 이전을 확인할 수 있도록 일부 지역 변수에 getNonBlankInput의 결과를 저장하기를 원할 것입니다
  • 답변

    2

    UserName과 같은 키를 가진 저장소로 HashMap을 사용하십시오. HashMap의 containsKey 메소드를 수행하여 사용자가 존재하는지 확인할 수 있습니다. 또한, NULL 입력

  • 확인 빈 입력에 대한

    1. 확인하는 것이 좋습니다
    2. 터무니없는 이름에 대한 확인 같은 경우의 예에서 하나의
    3. 스토어 키 (허용되지 않는 경우 숫자 이름 등) 소문자 또는 대문자. 중복을 찾는 동안 입력 내용이이 경우로 변환되었는지 확인하십시오.

    Name 속성 배열 대신 AddressBookEntry를 저장
  • 사용 HashSet의 기반으로 AddressBookEntry에
    //this is your address-book with unique User-Name 
    private static final HashMap<String, AddressBookEntry> addressBook = new HashMap<String, AddressBookEntry>(); 
    ... 
    ... 
    boolean addEntry(){ 
        boolean isNewEntry = true; 
        //getNonBlankInput should check for valid name 
        String name = getNonBlankInput("Enter Name: "); 
        if(!addressBook.containsKey(name.toLowerCase())){ 
         AddressBookEntry entry = new AddressBookEntry(); 
         entry.setName(name); 
         entry.setAdd(getNonBlankInput("Enter Address: ")); 
         entry.setPhoneNo(getNonBlankInput("Enter Phone No.: ")); 
         entry.setEmail(getNonBlankInput("Enter E-mail Address: ")); 
         addressBook.put(name.toLowerCase(), entry); 
        }else{ 
         isNewEntry = false; 
        } 
        return isNewEntry; 
    
    } 
    
  • +0

    thnx Nishant ...하지만 먼저 HashMap이 무엇인지 검색해야합니다 ... 저는 java에서 새로 왔으며 아직 내장 함수에 익숙하지 않았습니다 ... 먼저 검색을 해보고 감사합니다 ... – iamanapprentice

    +0

    안녕하세요 ... Nishant ... 이것이 내 문제를 해결하는 데 정말로 도움이 될 수 있다고 생각하지만 ... 아직도 이해하기 힘듭니다 ...몇 가지 더 많은 예제를 주셔서 감사합니다. :) – iamanapprentice

    +0

    @iamanapprentice 코드를 추가했습니다 – Nishant

    0

    에서

    감사합니다. 주소록의 모든 항목을 확인하고 이름을 비교하여 주소 목록에 이미 포함되어 있는지 확인하는 일종의 루프가 필요합니다.

    2

    이름에 키가있는 HashMap을 사용하면 어떨까요? 그런 다음 containsKey()를 사용하여 항목을 추가하기 전에 이름이 이미 HashMap에 있는지 확인할 수 있습니다.

    관련 문제