Java實現的簡單電話號碼儲存
package com.sinosuperman.example;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.TreeMap;
import javax.swing.JOptionPane;
public class PhoneNoteBook {
private final File phoneNoteBookFile;
private TreeMap<String, String> phoneNoteBookMap;
public PhoneNoteBook(String fileName) throws IOException {
phoneNoteBookMap = new TreeMap<String, String>();
phoneNoteBookFile = new File(fileName);
loadAllRecords();
}
private void loadAllRecords() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(phoneNoteBookFile));
String line = reader.readLine();
while (line != null) {
StringTokenizer str = new StringTokenizer(line, "\t");
String name = str.nextToken();
String phone = str.nextToken();
phoneNoteBookMap.put(name, phone);
line = reader.readLine();
}
reader.close();
}
private void addRecord() {
String name = JOptionPane.showInputDialog("Please enter the name:\n");
String phone = JOptionPane.showInputDialog("Please enter the phone:\n");
if (JOptionPane.showConfirmDialog(null, "Are you sure?") == JOptionPane.YES_OPTION) {
phoneNoteBookMap.put(name, phone);
} else {
JOptionPane.showMessageDialog(null, "Operation has been canceled");
}
}
private void updateRecord() {
String name = JOptionPane.showInputDialog("Please enter the name:\n");
String phone = JOptionPane.showInputDialog("Please enter his/her new phone name:\n");
if (!phoneNoteBookMap.containsKey(name)) {
if (JOptionPane.showConfirmDialog(null, "This name does not exist. Do you want to create a new one?") == JOptionPane.YES_OPTION) {
phoneNoteBookMap.put(name, phone);
} else {
JOptionPane.showMessageDialog(null, "Operation has been canceled");
}
} if (JOptionPane.showConfirmDialog(null, "Are you sure to modify his/her phone number?") == JOptionPane.YES_OPTION) {
phoneNoteBookMap.put(name, phone);
} else {
JOptionPane.showMessageDialog(null, "Operation has been canceled");
}
}
private void searchRecord() {
String name = JOptionPane.showInputDialog("Please the name for searching");
if (phoneNoteBookMap.containsKey(name)) {
JOptionPane.showMessageDialog(null, phoneNoteBookMap.get(name));
} else {
JOptionPane.showMessageDialog(null, "The name you are searching does not exists.");
}
}
private void removeRecord() {
String name = JOptionPane.showInputDialog("Please enter the name:\n");
if (!phoneNoteBookMap.containsKey(name)) {
JOptionPane.showConfirmDialog(null, "This name does not exist. So you don't need to remove it.");
} else if (JOptionPane.showConfirmDialog(null, "Are you sure to remove his/her record?") == JOptionPane.YES_OPTION) {
phoneNoteBookMap.remove(name);
} else {
JOptionPane.showMessageDialog(null, "Operation has been canceled");
}
}
public void display() {
String message = "Please select an operation:\n" +
"Enter \"1\" to add a new record;\n" +
"Enter \"2\" to update a existing record;\n" +
"Enter \"3\" to find a phone number;\n" +
"Enter \"4\" to remove a existing record.\n";
int choice = 0;
try {
choice = Integer.parseInt(JOptionPane.showInputDialog(message));
switch (choice) {
case 1:
addRecord();
break;
case 2:
updateRecord();
break;
case 3:
searchRecord();
break;
case 4:
removeRecord();
break;
default:
}
} catch (NumberFormatException e) {
}
if (JOptionPane.showConfirmDialog(null, "Would you want to continue?") != JOptionPane.YES_OPTION) {
JOptionPane.showMessageDialog(null, "Thank you.");
} else {
display();
}
}
}
測試驅動程式:
package com.sinosuperman.driver;
import java.io.IOException;
import com.sinosuperman.example.PhoneNoteBook;
public class Driver {
public static void main(String[] args) throws IOException {
PhoneNoteBook phoneNoteBook = new PhoneNoteBook("PhoneNoteBook.txt");
phoneNoteBook.display();
}
}
相關文章
- Go實現簡單的K-V儲存Go
- 安卓實現賬號密碼儲存安卓密碼
- HTML5實現DTMF(電話撥號按鍵訊號)解碼、編碼,程式碼簡單易於移植HTML
- 我們是如何設計儲存4億個電話號碼的
- TortoiseGit HTTPS方式儲存密碼最簡單的方法GitHTTP密碼
- 帶貨直播系統,實現簡單的換頭像並儲存
- java實現簡單的JDBCJavaJDBC
- 電話號碼的字母序列
- 【資料結構】二叉樹(順序儲存、鏈式儲存)的JAVA程式碼實現資料結構二叉樹Java
- java實現棧的簡單操作Java
- Python使用TCP實現簡單對話PythonTCP
- 使用簡單的Java程式碼實現酒店管理系統Java
- Chrome如何檢視儲存的網站密碼,如此簡單!Chrome網站密碼
- Java中將電話號碼轉換為數字Java
- Java使用Netty實現簡單的RPCJavaNettyRPC
- MySQL建立隨機生成電話的儲存函式MySql隨機儲存函式
- 簡單認識MySQL儲存引擎MySql儲存引擎
- 實現簡單的`Blazor`低程式碼Blazor
- linux儲存住github的賬號和密碼LinuxGithub密碼
- Java Web簡單登陸功能的實現JavaWeb
- 使用Java實現簡單的鬥地主案例Java
- git儲存賬號密碼到本地Git密碼
- ORACLE PL/SQL 物件、表資料對比功能儲存過程簡單實現OracleSQL物件儲存過程
- 用Java程式碼實現一個簡單的聊天室功能Java
- C#實現的簡單的隨機抽號器C#隨機
- 17_電話號碼的字母組合
- Java用UDP實現簡單聊天JavaUDP
- Hive的壓縮儲存和簡單優化Hive優化
- tensorflow:一個簡單的python訓練儲存模型,java還原模型方法Python模型Java
- 200 行程式碼實現基於 Paxos 的 KV 儲存行程
- 使用LocalStorage實現Form表單內容本地儲存ORM
- 小視訊app原始碼,實現簡單的登入介面,輸入賬號密碼APP原始碼密碼
- HDU-安卓程式開發之簡單儲存/內部儲存/外部儲存 & 捉蟲安卓
- 簡要說明jquery+jcrop實現的圖片裁剪儲存jQuery
- .NET使用OllamaSharp實現大模型推理對話的簡單演示大模型
- Java實現簡單的增刪改查操作Java
- 簡單的Java實現Netty進行通訊JavaNetty
- Java實現一個簡單的計算器Java
- 【力扣】電話號碼的組合(回溯法)力扣