Commodity.java package Drink;import java.util.Scanner;import java.time.*;import java.util.regex.Pattern;/*由于接口为pulic,但一个java文件中有且只有一个public类,所有接口一般单独一个文件*/ public interface Com
package Drink; import java.util.Scanner; import java.time.*; import java.util.regex.Pattern; /*由于接口为pulic,但一个java文件中有且只有一个public类,所有接口一般单独一个文件*/ public interface Commodity{//商品接口 void disDrink(String hint); void inputDrink(Scanner sc,String hint); void modifyDrink(Scanner sc); void regist();//商品登记 void inspection();//参加检测 default String getResult(String course) {//查询检测结果 //System.out.println("检测结果功能暂不提供"); return "检测结果功能暂不提供"; } //利用正则表达式确保输入的数据为正整数 static int inputInt(Scanner sc) { int result; String intPattern="^\\d+$";//正整数模式字符串 Pattern p=Pattern.compile(intPattern); String s; while(true) { s=sc.next(); if(p.matcher(s).matches()) { break; }else { System.out.print("输入的不是正整数,请重新输入:"); } } result=Integer.parseInt(s); return result; } //利用正则表达式确保时间的正确输入 /* static LocalDate inputDate(Scanner sc) { LocalDate result; int[] mothDays= {31,29,31,30,31,30,31,31,30,31,30,31};//确定每个月有多少天 String datePattern="^\\{4}-\\d{2}-\\d{2}$";//简单日期日期XXXX-XX-XX正则表达式 Pattern p=Pattern.compile(datePattern); String s; while(true) { s=sc.next(); boolean valid =true; String message =""; if(p.matcher(s).matches()) { String[] dateFiedls=s.split("-"); int y=Integer.parseInt(dateFiedls[0]); int m=Integer.parseInt(dateFiedls[1]); int d=Integer.parseInt(dateFiedls[2]); if(m>12||m<1) { valid=false; message="月份输入有误,请重新输入:"; }else if(d>mothDays[m-1]||d<1){ valid=false; message="日期输入有误,请重新输入:"; }else { MonthDay md=MonthDay.of(m, d); if(!md.isValidYear(y)) { valid=false; message="非闰年2月只有28天,请重新输入:"; } } }else { } } }*/ //利用正则表达式确保时间的正确输入 static LocalDate inputDate(Scanner sc){ LocalDate result; int[] monthDays = {31,29,31,30,31,30,31,31,30,31,30,31};//定义每个月有多少天 String datePattern = "^\\d{4}-\\d{2}-\\d{2}$"; //简单日期模式字符串正则表达式 Pattern p = Pattern.compile(datePattern); String s; while(true){ s = sc.next(); boolean valid = true; String message = ""; if(p.matcher(s).matches()){ String[] dateFields = s.split("-"); int y = Integer.parseInt(dateFields[0]); int m = Integer.parseInt(dateFields[1]); int d = Integer.parseInt(dateFields[2]); if(m>12||m<1){ valid = false; message = "月份输入有误。请重入!"; } else if(d>monthDays[m-1]||d<1){ valid = false; message = "日期输入有误。请重入!"; } else { MonthDay md = MonthDay.of(m,d); if(!md.isValidYear(y)){ valid = false; message = "非闰年2月不能输入29!请重入!"; } } } else{ valid = false; message = "输入日期格式不正确。请重入!"; } if(valid) break; else System.out.println(message); } result = LocalDate.parse(s); return result; } static /*LocalDate*/boolean inputDate(String S){//通过正则表达式检验日期输入,用于Drink.modify.data //LocalDate result; int[] monthDays = {31,29,31,30,31,30,31,31,30,31,30,31};//定义每个月有多少天 String datePattern = "^\\d{4}-\\d{2}-\\d{2}$"; //简单日期模式字符串正则表达式 Pattern p = Pattern.compile(datePattern); String s; //while(true){ s = S; boolean valid = true; String message = ""; if(p.matcher(s).matches()){ String[] dateFields = s.split("-"); int y = Integer.parseInt(dateFields[0]); int m = Integer.parseInt(dateFields[1]); int d = Integer.parseInt(dateFields[2]); if(m>12||m<1){ valid = false; message = "月份输入有误。"; } else if(d>monthDays[m-1]||d<1){ valid = false; message = "日期输入有误。"; } else { MonthDay md = MonthDay.of(m,d); if(!md.isValidYear(y)){ valid = false; message = "非闰年2月不能输入29!"; } } } else{ valid = false; message = "输入日期格式不正确。"; } if(valid) { //break; return valid; } else { System.out.println(message); return valid; } //} //result = LocalDate.parse(s); //return result; } } //日期正则表达式都不知道他在干啥