2016-05-15 4 views
0

Проблема в том, что мой ввод 2, но согласно моей программе это 50. Есть что-то не то, что я не могу понять. Здесь моя цель - создать приложение для контактов, в котором пользователь может продолжать добавлять свои контакты, и все сохраняется и упорядочивается на карте хэша.Мои входы разные в моей программе

Для тестеров в области ввода-вывода, я работал только с методом contactList(). Поэтому на данный момент у других методов нет большой функциональности.

package examples.hash.hashmap.IOintegration; 
    import java.util.HashMap; 
    import java.io.*; 
    public class Contacts{ 
     /*Aim: 
      *Takes input from the user to add, remove or read a contact's number 
      *It also can show you all the contacts the user has added 
      *What's more it is finally integrated with IO!! 
     */ 
     //Initializing some very crucial variables 
     HashMap contacts = new HashMap(); 
     InputStreamReader keyboardMethod = new InputStreamReader(System.in); 
     BufferedReader readerMethod = new BufferedReader(keyboardMethod); 
     public void contactList(){ 
      System.out.println(contacts.entrySet()); 
     } 
     public void addContact(){ 
      System.out.println("Give contacts name"); 
     } 
     public void removeContact(){} 
     public int getNumber(){ 
      return 1; 
     } 
     public static void main(String[] args)throws IOException{ 
      InputStreamReader keyboardOption = new InputStreamReader(System.in); 
      BufferedReader readerOption = new BufferedReader(keyboardOption); 
      Contacts obj = new Contacts(); 
      System.out.print("Type in your option: "); 
      int option = readerOption.read(); 
      System.out.println(option); 
      if(option == 1){ 
       obj.addContact(); 
      } 
      if(option == 2){ 
       System.out.println("HI"); 
       obj.contactList(); 
      } 
      if(option == 3){ 
       obj.getNumber(); 
      } 
      if(option == 4){ 
       obj.removeContact(); 
      } 

     } 
    } 
+1

вы получаете какую-либо ошибку? если да, то распечатайте здесь – emotionlessbananas

+1

http://www.asciitable.com/ Символ '' 2'' имеет значение int '50'. Если вы хотите, чтобы 'option' являлся символом вместо числа, введите' char'. – azurefrog

+0

Почему у вас есть поля 'keyboardMethod' /' readerMethod', затем создаются переменные 'keyboardOption' /' readerOption', что делает то же самое? – Andreas

ответ

0

FYI: read() возвращает характер значение, технически char, но он должен быть в int для того, чтобы обеспечить дополнительное -1 значение EOF.

Comment by azurefrog является правильным, значение '2'char Числовой ASCII/Unicode значение 50.

Если вы хотите прочитать номер, введенный пользователем, выполните следующие действия:

int option = Integer.parseInt(readerOption.readLine()); 

Осторожно плохой ввод пользователя.

0

Андреас прав!

Я также знаю ур намерение для применения ур!

a while {} loop может решить проблему ур!

Мой английский не квалифицирован, поэтому я улучшил код ура!

Изменить имя пакета в

package com.fan.component; 

import java.util.HashMap; 
import java.io.*; 
public class Contacts{ 
/*Aim: 
    *Takes input from the user to add, remove or read a contact's number 
    *It also can show you all the contacts the user has added 
    *What's more it is finally integrated with IO!! 
    */ 
//Initializing some very crucial variables 
HashMap contacts = new HashMap(); 
InputStreamReader keyboardMethod = new InputStreamReader(System.in); 
BufferedReader readerMethod = new BufferedReader(keyboardMethod); 
public void contactList(){ 
    System.out.println(contacts.entrySet()); 
} 
    public void addContact() throws IOException{ 
    System.out.println("Give contacts name"); 
    //details 

     String contactName = readerMethod.readLine(); 
     String contactNumber= readerMethod.readLine(); 
     contacts.put(contactName, contactNumber); 

} 
public void removeContact() throws IOException{ 
    //details 
    System.out.println("Give contacts name to remove"); 
    String contactName = readerMethod.readLine(); 

    String contactNumber = (String) contacts.get(contactName); 
    if(contactName != null) 
     contacts.remove(contactNumber); 
    else 
     System.out.println("No this contact"); 
} 
public void getNumber() throws IOException{ 
    //return 1; 
    System.out.println("input contact name"); 
    String contactName = readerMethod.readLine(); 
    String contactNum = (String) contacts.get(contactName); 
    if(contacts == null) 
     System.out.println("No this contact named " + contactName); 
    else 
     System.out.println(contactName + " : " + contactNum); 
} 
public static void main(String[] args)throws IOException{ 
    InputStreamReader keyboardOption = new InputStreamReader(System.in); 
    BufferedReader readerOption = new BufferedReader(keyboardOption); 
    Contacts obj = new Contacts(); 
    /* 
     * added code 
     */ 
    while(true) 
    { 
     System.out.print("Type in your option: "); 
     int option = Integer.parseInt(readerOption.readLine()); 
     System.out.println(option); 
     //add new contact 
     if(option == 1){ 
      obj.addContact(); 
     } 
     //check contact list 
     if(option == 2){ 
      System.out.println("HI"); 
      obj.contactList(); 
     } 
     //get number 
     if(option == 3){ 
      obj.getNumber(); 
     } 
     //remove contact 
     if(option == 4){ 
      obj.removeContact(); 
     } 
    } 

} 

}

Смежные вопросы