//該程序需要連接數據庫。根據word文檔要求所有功能均已實現。
//大部分方法基本差不多,
//在查詢修改的時候能輸出 最大ID號 和最小ID號,並且可以對輸入的ID號進行判斷是否存在(具體方法請查看 修改電話號碼, 其他修改方法暫時沒有相對完善,
只針對修改電話號碼的方法進行了修改,方便后期對編寫程序思路的查看)。
package 電話薄1; public class Menu { //主菜單 public void mainMenu() { for(int i = 0 ; i >= 0 ; i ++ ) { System.out.println("***********************\n** 1.添加記錄 **\n" + "** 2.查找記錄 **\n" + "** 3.修改記錄 **\n" + "** 4.刪除記錄 **\n" + "** 5.排序記錄 **\n" + "** 6.退出系統 ** \n" + "***********************"); System.out.println("請輸入正確的數字,最小是:1 最大是:6"); TelNoteRegex rtn = new TelNoteRegex(); Operate a = new Operate(); switch(rtn.menuRegex(1, 6)) { case 1: a.addLogic(); break; case 2: a.searchLogic(); break; case 3: a.modifyLogicLogic(); break; case 4: a.deleteLogic(); break; case 5: a.orderLogic(); break; case 6: System.out.println("程序已關閉,歡迎下次使用"); i=-2; break; } } } //添加用戶菜單 public void addMenu() { System.out.println("***********************\n" + "** 1.添加新記錄 **\n" + "** 2.查看全記錄 **\n" + "** 3.返回上一級 **\n" + "***********************"); System.out.println("請輸入正確的數字,最小是:1 最大是:3"); } //查找用戶菜單 void searchMenu() { System.out.println("***********************\n" + "** 1.按姓名查找 **\n" + "** 2.按年齡查找 **\n" + "** 3.按性別查找 **\n" + "** 4.按號碼查找 **\n" + "** 5.按住址查找 **\n" + "** 6.查看全記錄 **\n" + "** 7.返回上一級 **\n" + "***********************"); System.out.println("請輸入正確的數字,最小是:1 最大是:7"); } //修改用戶信息菜單 void modifyMenu() { System.out.println("***********************\n" + "** 1.查看全記錄 **\n" + "** 2.修改指定記錄 **\n" + "** 3.返回上一級 **\n" + "***********************"); System.out.println("請輸入正確的數字,最小是:1 最大是:3"); } //修改用戶信息子菜單 void subModifyMenu () { System.out.println("***********************\n" + "** 1.修改姓名 **\n" + "** 2.修改年齡 **\n" + "** 3.修改性別 **\n" + "** 4.修改號碼 **\n" + "** 5.修改住址 **\n" + "** 6.返回上一級 **\n" + "***********************"); System.out.println("請輸入正確的數字,最小是:1 最大是:6"); } //刪除用戶信息菜單 void deleteMenu () { System.out.println("***********************\n" + "** 1.查看全記錄 **\n" + "** 2.刪除指定記錄 **\n" + "** 3.刪除全部記錄 **\n" + "** 4.返回上級 **\n" + "************************"); System.out.println("請輸入正確的數字,最小是:1 最大是:6"); } //排序用戶信息菜單 void orderMenu () { System.out.println("***********************\n" + "** 1.按姓名排序 **\n" + "** 2.按年齡排序 **\n" + "** 3.按性別排序 **\n" + "** 4.查看全部記錄 **\n" + "** 5.返回上一級 **\n" + "***********************"); System.out.println("請輸入正確的數字,最小是:1 最大是:6"); } }
package 電話薄1; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import com.mchange.v2.c3p0.ComboPooledDataSource; public class Operate { // 連接池 ComboPooledDataSource cp = new ComboPooledDataSource("helloc3p0"); // 用戶添加信息業務邏輯控制 public void addLogic() { TelNoteRegex rtn = new TelNoteRegex(); Operate i = new Operate(); Menu m = new Menu(); m.addMenu(); switch (rtn.menuRegex(1, 3)) { case 1: addOperation(); // break; case 2: List<Person> lb = i.showAll(); // break; } } // 用戶查詢信息業務邏輯控制 public void searchLogic() { TelNoteRegex rtn = new TelNoteRegex(); Menu m = new Menu(); m.searchMenu(); switch (rtn.menuRegex(1, 7)) { case 1: searchByName(); break; case 2: searchByAge(); break; case 3: searchBySex(); break; case 4: searchByTelNum(); break; case 5: searchByAdd(); break; case 6: showAll(); break; } } // 修改信息業務邏輯控制 public void modifyLogicLogic() { TelNoteRegex rtn = new TelNoteRegex(); Menu m = new Menu(); m.modifyMenu(); switch (rtn.menuRegex(1, 3)) { case 1: showAll(); case 2: modify(); break; } } // 修改指定記錄信息 public void modify() { TelNoteRegex rtn = new TelNoteRegex(); Menu m = new Menu(); m.subModifyMenu(); switch (rtn.menuRegex(1, 6)) { case 1: modName(); break; case 2: modAge(); break; case 3: modSex(); break; case 4: modTelNum(); break; case 5: modAdd(); break; case 6: modifyLogicLogic(); break; } } // 刪除信息業務邏輯控制 public void deleteLogic() { TelNoteRegex rtn = new TelNoteRegex(); Menu m = new Menu(); m.deleteMenu(); switch (rtn.menuRegex(1, 4)) { case 1: showAll(); break; case 2: delete(); break; case 3: deleteAll(); break; } } // 排序信息業務邏輯控制 public void orderLogic() { TelNoteRegex rtn = new TelNoteRegex(); Menu m = new Menu(); m.orderMenu(); switch (rtn.menuRegex(1, 5)) { case 1: orderName(); break; case 2: orderAge(); break; case 3: orderSex(); break; case 4: showAll(); break; } } // 添加新用戶信息 public List<Person> addOperation() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); // 輸入姓名並判斷 TelNoteRegex name1 = new TelNoteRegex(); String name = name1.nameRegex(); // 輸入年齡並判斷 TelNoteRegex age1 = new TelNoteRegex(); String age = age1.ageRegex(); // 輸入性別並判斷 TelNoteRegex sex1 = new TelNoteRegex(); String sex = sex1.sexRegex(); // 輸入電話號碼並判斷 TelNoteRegex telnum1 = new TelNoteRegex(); String telnum = telnum1.telnumRegex(); // 輸入地址 TelNoteRegex address1 = new TelNoteRegex(); String address = address1.addressRegex(); String sql = "insert into person values(sq_person.nextval,?,?,?,?,?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, name); ps.setString(2, age); ps.setString(3, sex); ps.setString(4, telnum); ps.setString(5, address); ps.executeUpdate(); System.out.println("添加成功"); ps.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } return rtn; } // 查詢全部用戶信息 public List<Person> showAll() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); ResultSet rs = st.executeQuery("select * from person"); // 遍歷結果集 while (rs.next()) { Person pe = new Person(); pe.setId(rs.getInt("id")); pe.setName(rs.getString("name")); pe.setAge(rs.getString("age")); pe.setSex(rs.getString("sex")); pe.setTelNum(rs.getString("telnum")); pe.setAddress(rs.getString("address")); rtn.add(pe); System.out.println(pe); } rs.close(); st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return rtn; } // 按姓名查找 public List<Person> searchByName() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); // 輸入姓名並判斷 TelNoteRegex name1 = new TelNoteRegex(); String name = name1.nameRegex(); String sql = "select * from person where name = '" + name + "'"; ResultSet rs = st.executeQuery(sql); // 遍歷結果集 if (!rs.next()) { System.out.println("沒有相關數據"); } else { rs = st.executeQuery(sql); while (rs.next()) { Person pe = new Person(); pe.setId(rs.getInt("id")); pe.setName(rs.getString("name")); pe.setAge(rs.getString("age")); pe.setSex(rs.getString("sex")); pe.setTelNum(rs.getString("telnum")); pe.setAddress(rs.getString("address")); rtn.add(pe); System.out.println(pe); } } rs.close(); st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return rtn; } // 按年齡查找 public List<Person> searchByAge() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); // 輸入年齡並判斷 TelNoteRegex age1 = new TelNoteRegex(); String age = age1.ageRegex(); String sql = "select * from person where age = '" + age + "'"; ResultSet rs = st.executeQuery(sql); // 遍歷結果集 if (!rs.next()) { System.out.println("沒有相關數據"); } else { rs = st.executeQuery(sql); while (rs.next()) { Person pe = new Person(); pe.setId(rs.getInt("id")); pe.setName(rs.getString("name")); pe.setAge(rs.getString("age")); pe.setSex(rs.getString("sex")); pe.setTelNum(rs.getString("telnum")); pe.setAddress(rs.getString("address")); rtn.add(pe); System.out.println(pe); } } rs.close(); st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return rtn; } // 按性別查詢 public List<Person> searchBySex() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); // 輸入性別並判斷 TelNoteRegex sex1 = new TelNoteRegex(); String sex = sex1.sexRegex(); String sql = "select * from person where sex = '" + sex + "'"; ResultSet rs = st.executeQuery(sql); // 遍歷結果集 if (!rs.next()) { System.out.println("沒有相關數據"); } else { rs = st.executeQuery(sql); while (rs.next()) { Person pe = new Person(); pe.setId(rs.getInt("id")); pe.setName(rs.getString("name")); pe.setAge(rs.getString("age")); pe.setSex(rs.getString("sex")); pe.setTelNum(rs.getString("telnum")); pe.setAddress(rs.getString("address")); rtn.add(pe); System.out.println(pe); } } rs.close(); st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return rtn; } // 按號碼查找 public List<Person> searchByTelNum() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); // 輸入號碼並判斷 TelNoteRegex telnum1 = new TelNoteRegex(); String telnum = telnum1.telnumRegex(); String sql = "select * from person where telnum = '" + telnum + "'"; ResultSet rs = st.executeQuery(sql); // 遍歷結果集 if (!rs.next()) { System.out.println("沒有相關數據"); } else { rs = st.executeQuery(sql); while (rs.next()) { Person pe = new Person(); pe.setId(rs.getInt("id")); pe.setName(rs.getString("name")); pe.setAge(rs.getString("age")); pe.setSex(rs.getString("sex")); pe.setTelNum(rs.getString("telnum")); pe.setAddress(rs.getString("address")); rtn.add(pe); System.out.println(pe); } } rs.close(); st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return rtn; } // 按號碼查找 public List<Person> searchByAdd() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); // 輸入地址並判斷 TelNoteRegex address1 = new TelNoteRegex(); String address = address1.addressRegex(); String sql = "select * from person where address = '" + address + "'"; ResultSet rs = st.executeQuery(sql); // 遍歷結果集 if (!rs.next()) { System.out.println("沒有相關數據"); } else { rs = st.executeQuery(sql); while (rs.next()) { Person pe = new Person(); pe.setId(rs.getInt("id")); pe.setName(rs.getString("name")); pe.setAge(rs.getString("age")); pe.setSex(rs.getString("sex")); pe.setTelNum(rs.getString("telnum")); pe.setAddress(rs.getString("address")); rtn.add(pe); System.out.println(pe); } } rs.close(); st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return rtn; } // 修改姓名 public void modName() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); // 獲取ID的最小值 ResultSet rs1 = st.executeQuery("select min(id) from person"); int min = 0; rs1.next(); min = rs1.getInt(1); // 獲取ID的最大值 ResultSet rs2 = st.executeQuery("select max(id) from person"); int max = 0; rs2.next(); max = rs2.getInt(1); System.out.println("請輸入要修改的ID號,最小ID號為:" + min + "最大ID號為:" + max); Scanner scan = new Scanner(System.in); int id = scan.nextInt(); // 輸入姓名並判斷 TelNoteRegex name1 = new TelNoteRegex(); String name = name1.nameRegex(); String sql = "update person set name = '" + name + "' where id = '" + id + "'"; ResultSet rs = st.executeQuery(sql); ResultSet rs5 = st.executeQuery("select * from person where id = '" + id + "'"); // 遍歷結果集 if (!rs5.next()) { System.out.println("沒有相關數據,系統退回到主菜單"); } else { rs = st.executeQuery(sql); System.out.println("修改成功"); } rs.close(); st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return; } // 修改年齡 public void modAge() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); // 獲取ID的最小值 ResultSet rs1 = st.executeQuery("select min(id) from person"); int min = 0; rs1.next(); min = rs1.getInt(1); // 獲取ID的最大值 ResultSet rs2 = st.executeQuery("select max(id) from person"); int max = 0; rs2.next(); max = rs2.getInt(1); System.out.println("請輸入要修改的ID號,最小ID號為:" + min + "最大ID號為:" + max); Scanner scan = new Scanner(System.in); int id = scan.nextInt(); // 輸入姓名並判斷 TelNoteRegex age1 = new TelNoteRegex(); String age = age1.ageRegex(); String sql = "update person set age = '" + age + "' where id = '" + id + "'"; ResultSet rs = st.executeQuery(sql); ResultSet rs5 = st.executeQuery("select * from person where id = '" + id + "'"); // 遍歷結果集 if (!rs5.next()) { System.out.println("沒有相關數據,系統退回到主菜單"); } else { rs = st.executeQuery(sql); System.out.println("修改成功"); } rs.close(); st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return; } // 修改性別 public void modSex() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); // 獲取ID的最小值 ResultSet rs1 = st.executeQuery("select min(id) from person"); int min = 0; rs1.next(); min = rs1.getInt(1); // 獲取ID的最大值 ResultSet rs2 = st.executeQuery("select max(id) from person"); int max = 0; rs2.next(); max = rs2.getInt(1); System.out.println("請輸入要修改的ID號,最小ID號為:" + min + "最大ID號為:" + max); Scanner scan = new Scanner(System.in); int id = scan.nextInt(); // 輸入性別並判斷 TelNoteRegex sex1 = new TelNoteRegex(); String sex = sex1.sexRegex(); String sql = "update person set sex = '" + sex + "' where id = '" + id + "'"; ResultSet rs = st.executeQuery(sql); ResultSet rs5 = st.executeQuery("select * from person where id = '" + id + "'"); // 遍歷結果集 if (!rs5.next()) { System.out.println("沒有相關數據,系統退回到主菜單"); } else { rs = st.executeQuery(sql); System.out.println("修改成功"); } rs.close(); st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return; } // 修改號碼 public void modTelNum() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); // 獲取ID的最小值 ResultSet rs1 = st.executeQuery("select min(id) from person"); int min = 0; rs1.next(); min = rs1.getInt(1); // 獲取ID的最大值 ResultSet rs2 = st.executeQuery("select max(id) from person"); int max = 0; rs2.next(); max = rs2.getInt(1); System.out.println("請輸入要修改的ID號,最小ID號為:" + min + "最大ID號為:" + max); Scanner scan = new Scanner(System.in); int id = scan.nextInt(); ResultSet rs5 = st.executeQuery("select * from person where id = '" + id + "'"); if (!rs5.next()) { System.out.println("沒有相關數據,系統退回到主菜單"); // 遍歷結果集 } else { // 輸入號碼並判斷 TelNoteRegex telnum1 = new TelNoteRegex(); String telnum = telnum1.telnumRegex(); String sql = "update person set telnum = '" + telnum + "' where id = '" + id + "'"; ResultSet rs = st.executeQuery(sql); rs = st.executeQuery(sql); System.out.println("修改成功"); } st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return; } // 修改地址 public void modAdd() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); // 獲取ID的最小值 ResultSet rs1 = st.executeQuery("select min(id) from person"); int min = 0; rs1.next(); min = rs1.getInt(1); // 獲取ID的最大值 ResultSet rs2 = st.executeQuery("select max(id) from person"); int max = 0; rs2.next(); max = rs2.getInt(1); System.out.println("請輸入要修改的ID號,最小ID號為:" + min + "最大ID號為:" + max); Scanner scan = new Scanner(System.in); int id = scan.nextInt(); // 輸入地址並判斷 TelNoteRegex add1 = new TelNoteRegex(); String add = add1.addressRegex(); String sql = "update person set address = '" + add + "' where id = '" + id + "'"; ResultSet rs = st.executeQuery(sql); ResultSet rs5 = st.executeQuery("select * from person where id = '" + id + "'"); // 遍歷結果集 if (!rs5.next()) { System.out.println("沒有相關數據,系統退回到主菜單"); } else { rs = st.executeQuery(sql); System.out.println("修改成功"); } rs.close(); st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return; } // 刪除指定用戶信息 public void delete() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); ResultSet rs1 = st.executeQuery("select min(id) from person"); ResultSet rs2 = st.executeQuery("select max(id) from person"); System.out.println(rs1); System.out.println("請輸入要刪除的ID"); Scanner scan = new Scanner(System.in); int id = scan.nextInt(); String sql = "delete from Person where id = '" + id + "'"; ResultSet rs = st.executeQuery(sql); rs = st.executeQuery(sql); System.out.println("刪除成功"); rs.close(); st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return; } // 刪除全部記錄 public void deleteAll() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); String sql = "truncate table person"; ResultSet rs = st.executeQuery(sql); rs = st.executeQuery(sql); System.out.println("全部數據已經清空"); rs.close(); st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return; } // 按用戶姓名排序 public List<Person> orderName() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); ResultSet rs = st.executeQuery("select * from person order by name"); // 遍歷結果集 while (rs.next()) { Person pe = new Person(); pe.setId(rs.getInt("id")); pe.setName(rs.getString("name")); pe.setAge(rs.getString("age")); pe.setSex(rs.getString("sex")); pe.setTelNum(rs.getString("telnum")); pe.setAddress(rs.getString("address")); rtn.add(pe); System.out.println(pe); } rs.close(); st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return rtn; } // 按用戶年齡排序 public List<Person> orderAge() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); ResultSet rs = st.executeQuery("select * from person order by age"); // 遍歷結果集 while (rs.next()) { Person pe = new Person(); pe.setId(rs.getInt("id")); pe.setName(rs.getString("name")); pe.setAge(rs.getString("age")); pe.setSex(rs.getString("sex")); pe.setTelNum(rs.getString("telnum")); pe.setAddress(rs.getString("address")); rtn.add(pe); System.out.println(pe); } rs.close(); st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return rtn; } // 按用戶性別排序 public List<Person> orderSex() { List<Person> rtn = new ArrayList<>(); try { Connection conn = cp.getConnection(); Statement st = conn.createStatement(); ResultSet rs = st.executeQuery("select * from person order by sex"); // 遍歷結果集 while (rs.next()) { Person pe = new Person(); pe.setId(rs.getInt("id")); pe.setName(rs.getString("name")); pe.setAge(rs.getString("age")); pe.setSex(rs.getString("sex")); pe.setTelNum(rs.getString("telnum")); pe.setAddress(rs.getString("address")); rtn.add(pe); System.out.println(pe); } rs.close(); st.close(); cp.close(); } catch (Exception e) { e.printStackTrace(); } return rtn; } }
package 電話薄1; public class Person { private int id; //用戶ID 屬性 private String name; // 用戶姓名屬性 private String age; //用戶年齡屬性 private String sex; //用戶性別屬性 private String telNum; // 用戶電話號碼屬性 private String address; //用戶地址屬性 //有參數構造方法 public Person(int id, String name, String age, String sex, String telNum, String address) { this.id = id; this.name = name; this.age = age; this.sex = sex; this.telNum = telNum; this.address = address; } //無參構造方法 public Person() { super(); // TODO 自動生成的構造函數存根 } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getTelNum() { return telNum; } public void setTelNum(String telNum) { this.telNum = telNum; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "[序號=" + id + ", 姓名=" + name + ", 年齡=" + age + ", 性別=" + sex + ", 號碼=" + telNum + ", 地址=" + address + "]"; } }
package 電話薄1; import java.util.Scanner; public class TelNoteRegex { //對菜單輸入選項的驗證 public int menuRegex (int min, int max ) { Scanner scan = new Scanner(System.in); int z = 0; try{ while(true) { z = scan.nextInt(); if(z>=min && z<=max) { break; } else{ System.out.println("輸入有誤,請重新輸入"+min+"到"+max); } } return z; } catch(Exception e){ System.out.println("輸入錯誤"); } return z ; } //對用戶輸入姓名的驗證 public String nameRegex() { System.out.println("請輸入姓名,1-10位字母"); Scanner scan = new Scanner(System.in); String name = ""; while(true) { name= scan.nextLine(); if(name.matches("[A-Za-z]{1,10}")) { break; } else { System.out.println("輸入錯誤,請重新輸入1-10位字母"); } } return name; } //對用戶輸入年齡的驗證 public String ageRegex() { System.out.println("請輸入年齡,1-100+"); Scanner scan = new Scanner(System.in); String age = ""; while(true) { age= scan.nextLine(); if(age.matches("[0-9]{1,2}")) { break; } else { System.out.println("輸入錯誤,請重新輸入1-100"); } } return age; } //對用戶輸入性別的驗證 public String sexRegex() { System.out.println("輸入性別,(男 m or M) (女 f or F)"); Scanner scan = new Scanner(System.in); String sex = ""; while(true) { sex= scan.nextLine(); if(sex.matches("男|女|m|M|f|F")) { break; } else { System.out.println("輸入錯誤,請重新輸入性別,(男 m or M) (女 f or F)"); } } return sex; } //對用戶輸入年齡的驗證 public String telnumRegex () { System.out.println("輸入電話號碼,6-11位數字"); Scanner scan = new Scanner(System.in); String telNum = ""; while(true) { telNum= scan.nextLine(); if(telNum.matches("[0-9]{6,11}")) { break; } else { System.out.println("輸入錯誤,請重新輸入電話號碼,6-11位數字"); } } return telNum; } //對用戶輸入地址的驗證 public String addressRegex () { System.out.println("輸入地址,1-50位字母或數字"); Scanner scan = new Scanner(System.in); String address = ""; while(true) { address= scan.nextLine(); if(address.matches("[A-Za-z0-9]{1,50}")) { break; } else { System.out.println("輸入錯誤,請重新輸入地址,1-50位字母或數字"); } } return address; } }