JAVA如何对输入的中文数字抛异常,急

2025-01-05 00:13:15
推荐回答(5个)
回答1:

//以下是一个完整的日期类,你可以自己编写个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("[零一二三四五六七八九十]+");

}

}

回答2:

用输入字符的ASCII码解决
中文的码我你自己试试

回答3:

定义成int 不就行了?

..

回答4:

3中方法
1是逻辑判断 就是if...else if ....else...
2是异常判断 就是 try{ 定义 年月日 int }catch{ 出现不是数字的就执行这 }
3是正则表达式 %“^((a-z)|(A-Z))$”

回答5:

可以定义一个字符串 String numOfCn = "零一二三四五六七八九"
在try{}语句块中遍历输入的字符串,如果指定的位置的字符不在numOfCn中就抛出异常throw new Exception()就可以了