//以下是一个完整的日期类,你可以自己编写个main函数来测试。
//当然这里没有判断中文数字越界的问题,例如输入的是"十三月"的时候!
public class ChinaDate {
public ChinaDate(String year, String month, String day) throws Exception {
setYear(year);
setMonth(month);
setDay(day);
}
String year;
String month;
String day;
public String getDay() {
return day + "日";
}
public String getMonth() {
return month + "月";
}
public String getYear() {
return year + "年";
}
public void setMonth(String month) throws Exception {
if (!Check(month))
throw new Exception("非法中文数字");
this.month = month;
}
public void setDay(String day)throws Exception {
if (!Check(day))
throw new Exception("非法中文数字");
this.day = day;
}
public void setYear(String year)throws Exception {
if (!Check(year))
throw new Exception("非法中文数字");
this.year = year;
}
private boolean Check(String s) {
return s.matches("[零一二三四五六七八九十]+");
}
}
用输入字符的ASCII码解决
中文的码我你自己试试
定义成int 不就行了?
..
3中方法
1是逻辑判断 就是if...else if ....else...
2是异常判断 就是 try{ 定义 年月日 int }catch{ 出现不是数字的就执行这 }
3是正则表达式 %“^((a-z)|(A-Z))$”
可以定义一个字符串 String numOfCn = "零一二三四五六七八九"
在try{}语句块中遍历输入的字符串,如果指定的位置的字符不在numOfCn中就抛出异常throw new Exception()就可以了