blooming8

rubrica.java

Mar 30th, 2022 (edited)
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.99 KB | None | 0 0
  1. package com.mycompany.rubrica;
  2. import java.util.HashMap;
  3. import java.util.Scanner;
  4. /**
  5.  *
  6.  * @author alessio
  7.  */
  8. public class Rubrica
  9. {
  10.     private static HashMap<String, Contatto> elenco = new HashMap();
  11.    
  12.     public static void insCont()
  13.     {
  14.         Scanner scan = new Scanner(System.in);
  15.        
  16.         System.out.println("\nNome contatto: ");
  17.         String nome = scan.nextLine();
  18.         System.out.println("\nNumero: ");
  19.         String num = scan.nextLine();
  20.         num = num.trim();
  21.         num = "+39 " + num.substring(0, 3) + "-" + num.substring(3, 6) + "-" + num.substring(6, 10);
  22.         elenco.put(nome, new Contatto(nome, num));
  23.         System.out.print("\nContatto inserito: ");
  24.         System.out.println(elenco.get(nome).toString());
  25.         FileOperations.stampaSuFile(elenco.get(nome).toString());
  26.     }
  27.    
  28.     public static boolean cercaCont()
  29.     {
  30.         Scanner scan = new Scanner(System.in);
  31.         boolean trovato = false;
  32.        
  33.         try
  34.         {
  35.             System.out.println("\nRicerca per nome: ");
  36.             String nome = scan.nextLine();
  37.        
  38.             if (elenco.containsKey(nome))
  39.             {
  40.                 trovato = true;
  41.                 System.out.println("\nContatto trovato.");
  42.                 System.out.println(elenco.get(nome).toString());
  43.             }
  44.             else
  45.             {
  46.                 System.out.println("\nContatto \"" + nome + "\" non trovato.");
  47.             }
  48.         }
  49.         catch (NumberFormatException exc)
  50.         {
  51.            
  52.         }
  53.        
  54.         return trovato;
  55.     }
  56.    
  57.     public static void cancCont()
  58.     {
  59.         Scanner scan = new Scanner(System.in);
  60.  
  61.         System.out.println("\nRicerca per nome: ");
  62.         String nome = scan.nextLine();
  63.  
  64.         if (elenco.containsKey(nome))
  65.         {
  66.             elenco.remove(nome);
  67.             System.out.println("\nContatto rimosso.");
  68.         }
  69.     }
  70.    
  71.     public static void modificaCont()
  72.     {
  73.         Scanner scan = new Scanner(System.in);
  74.        
  75.         System.out.println("\nInserisci il nome da cercare: ");
  76.         String nome = scan.nextLine();
  77.         if (elenco.containsKey(nome))
  78.         {
  79.             System.out.println("\nContatto trovato: ");
  80.             System.out.println(elenco.get(nome).toString());
  81.             System.out.println("\n1. Modifica nome / 2. Modifica numero");
  82.             switch (Integer.parseInt(scan.nextLine()))
  83.             {
  84.                 case 1:
  85.                     /*
  86.                         Dobbiamo anche modificare la chiave Nome. Per cui non
  87.                         possiamo avvalerci di .setNome(), ma dobbiamo rimuovere
  88.                         il contatto dall'HashMap e reinserirlo da capo.
  89.                     */
  90.                     System.out.println("\nInserisci il nuovo nome: ");
  91.                     String nome2 = scan.nextLine();
  92.                     /*
  93.                         Richiamiamo .getNum() per conservare il numero di telefono,
  94.                         in vista della rimozione e sostituzione del contatto.
  95.                     */
  96.                     String num = elenco.get(nome).getNum();
  97.                     elenco.remove(nome);
  98.                     /*
  99.                         Nome ci è servito a rimuovere il contatto da chiave.
  100.                         Ora che non ci serve più possiamo sovrascriverlo con
  101.                         il nuovo nome.
  102.                     */
  103.                     nome = nome2;
  104.                     elenco.put(nome, new Contatto(nome, num));
  105.                     System.out.println("\nNome modificato.");
  106.                     break;
  107.                 case 2:
  108.                     System.out.println("\nInserisci il nuovo numero: ");
  109.                     String num2 = scan.nextLine().trim();
  110.                     num2 = "+39 " + num2.substring(0, 3) + "-" + num2.substring(3, 6) + "-" + num2.substring(6, 10);
  111.                     elenco.get(nome).setNum(num2);
  112.                     System.out.println("\nNumero modificato.");
  113.                     break;
  114.                 default:
  115.                     System.out.println("\nInserisci un numero da 1 a 2.");
  116.                     break;
  117.             }
  118.             System.out.println(elenco.get(nome).toString());
  119.         }
  120.         else
  121.         {
  122.             System.out.println("\nContatto \"" + nome + "\" non trovato.");
  123.         }
  124.     }
  125.    
  126.     public static void visualizza()
  127.     {
  128.         if (!(elenco.isEmpty()))
  129.         {
  130.             for (Contatto contatto : elenco.values())
  131.             {
  132.                 System.out.println(contatto.toString());
  133.             }
  134.         }
  135.         else
  136.         {
  137.             System.out.println("\nRubrica vuota.");
  138.         }
  139.     }
  140.    
  141.     public static void cancella()
  142.     {
  143.         if (!(elenco.isEmpty()))
  144.         {
  145.             elenco.clear();      
  146.             System.out.println("\nLa rubrica è stata ripulita.");
  147.         }
  148.         else
  149.         {
  150.             System.out.println("\nRubrica vuota.");
  151.         }
  152.     }
  153. }
  154.  
Add Comment
Please, Sign In to add comment