关于字符串的切割首先要明确目的;
1.应该按照什么来切割
2.要切割成几部分
3.并且要用什么类型来装 切割之后的字符串数组
例如生日的格式:
月/日
// 得到会员的生日
// 1.切割字符串,将切出的字符串存到一个火车中
String[] strs = birthday.split("/");
// 2.获得0号车厢中的字符串和 1号车厢中的字符串
也就是通过切割之后的两个部分 通过你按照"/"切割的AB部分
String month = strs[0];// 火车中的0号车厢中的字符串
String day = strs[1];// 火车中的1号车厢中的字符串
// 3.将对应数组变成字符串
将通过切割的字符串 month 和 day 传进来 也就是AB部分
int int_month = Integer.parseInt(month);
int int_day = Integer.parseInt(day);
//4.通过转换之后的字符串数字变成了数字然后才可以进行判断使用
日期判断
//判断月份和日期的范围
if((int_month <1 || int_month >12) && (int_day < 1||int_day> 30)){
System.out.println("日期格式有误!,请重新输入");
}
例题 录入会员的生日和密码 要求生日格式为 (月/日)密码要求在6~10位数之间
先编写一个日期格式异常类
class DateException extends Exception {
public DateException() {
super();
}
public DateException(String message) {
super(message);
}
}
验证生日格式 声明异常
class date {
public boolean validateBirth(String date) throws DateException(){
boolean b = true;
首先先判断符号"/"的位置
if(date.indexOF("/"!=2)){
并且抛出异常
throw new DateException("日期格式异常");
}
然后开始切割字符串 通过方法split 按照("/")来切割 存放到一个字符串数组中
String[] d = date.split("/")
然后通过方法parseint方法 将字符串 转换成为Int类型的数字
int month = integer.parseInt(d[0])
int day = integer.parseInt(d[1])
if((month < 0 || month > 12) || (day < 0 || day > 31)){
System.out.println("日期有误");
return false;
}
System.out.println("您的生日是" + date); .
return b;
}
}
验证密码格式
public boolean validatePwd(String pwd) {
boolean c =true;
if (((pwd.length() < 6) || (pwd.length() > 10))) {
System.out.println("密码不符合要求");
return false;
} else {
System.out.println("您的密码是:" + pwd);
}
return c ;
}
测试方法
public static void main(String[] args) {
date d = new date();
boolean flag = false;
Scanner sc = new Scanner(System.in);
System.out.println("请输入会员格式为:月/日");
do {
try {
System.out.println("请输入会员生日");
String date = sc.next();
System.out.println("请输入会员密码");
String pwd = sc.next();
d.validateBirth(date);
d.validatePwd(pwd);
} catch (Exception e) {
System.out.println(e.getMessage());
}
} while (!flag);
}