解决方案 »
- 小程序续
- 如何利用poi如何清空excle工作表中的信息,急!!!
- 我用jbuilder写了一个javamail发送字符串的application,在JB中运行得很好,但生成的exe却发送失败
- java中处理表单,我写一个类,是继承httpServlet还是GenericSelet,另外是重载DoPost()方法还是DoGet?()方法还是Service()方法是
- 关于汉字的问题,在线等
- 刚从C++转过来,请教几个基本问题,请指教。
- 关于 break 标签问题!!!
- 急,100分求救.关于Oracle的问题?
- 哪儿可以下载到连接Interbase 的JDBC驱动程序?
- 如何写文件到本地,而不是写到服务器上?
- 集合遍历问题
- java小白怎么在本论坛学到全面的知识
你要用的应该是Format.parse()吧
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class TTest {
public static void main(String [] args) {
Scanner input = new Scanner(System.in);
SimpleDateFormat Format = new SimpleDateFormat("MM/dd");
String birthday=" ";
System.out.print("请输入会员的生日<月/日:00/00>:");
birthday = input.next();//接收会员生日
Date x = Format.parse(birthday);//这句话有问题,会报错,让我使用try\catch语句,或者在方法哪里声明有异常。
System.out.println("会员生日是:"+birthday); }
}我要实现的要求是:
如果输入的格式不符合要求会继续要求重新输入,直至输入正确为止。怎么做,求程序。
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class TTest {
public static void main(String [] args) {
Scanner input = new Scanner(System.in);
SimpleDateFormat Format = new SimpleDateFormat("MM/dd");
String birthday=" ";
System.out.print("请输入会员的生日<月/日:00/00>:");
birthday = input.next();//接收会员生日
Date x = Format.parse(birthday);//这句话有问题,会报错,让我使用try\catch语句,或者在方法哪里声明有异常。
System.out.println("会员生日是:"+birthday); }
}我要实现的要求是:
如果输入的格式不符合要求会继续要求重新输入,直至输入正确为止。怎么做,求程序。你想实现什么效果 是输入月份/日期 打印出"会员生日是:月份/日期"么 你只想验证他输入的是否符合你的格式么
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class TTest {
public static void main(String [] args) {
Scanner input = new Scanner(System.in);
SimpleDateFormat Format = new SimpleDateFormat("MM/dd");
String birthday=" ";
System.out.print("请输入会员的生日<月/日:00/00>:");
birthday = input.next();//接收会员生日
Date x = Format.parse(birthday);//这句话有问题,会报错,让我使用try\catch语句,或者在方法哪里声明有异常。
System.out.println("会员生日是:"+birthday); }
}我要实现的要求是:
如果输入的格式不符合要求会继续要求重新输入,直至输入正确为止。怎么做,求程序。
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String birthday=" ";
System.out.print("请输入会员的生日<月/日:00/00>:");
birthday = input.next();//接收会员生日
try{
if(birthday.indexOf("/")==-1||birthday.split("/").length!=2){
System.out.println("请输入正确格式,例如 01/01");
}else{
String [] b = birthday.split("/");
Integer.parseInt(b[0]);//非数字时抛出异常
Integer.parseInt(b[1]);
System.out.println("会员生日是:"+birthday);
}
}catch(Exception e){
System.out.println("请输入正确格式,例如 01/01,格式必须由‘数字/数字’组成");
}
}这样不知道能不能满足你的需求 如果你只是想验证格式然后直接输出的话
import java.util.Date;
import java.util.Scanner;
不需要这三个的。
java7中日期的基本获取使用java.util.Calendar
public class TTest {
public static void main(String [] args) throws ParseException {
Scanner input = new Scanner(System.in);
SimpleDateFormat Format = new SimpleDateFormat("MM/dd");//设置输入的日期的格式要求
String birthday=" ";//接收输入的日期
boolean flag = true;
do{
System.out.print("请输入会员的生日<月/日:00/00>:");
birthday = input.next();//接收会员生日
try{
Date x = Format.parse(birthday);
flag = birthday.equals(x)?true:false;
}catch(ParseException e){
System.out.println("生日形式输入错误!");
System.out.println();
}
}while(flag);
System.out.println("该会员生日是:"+birthday);
int num;
String password = " ";
do{
System.out.println("请输入会员密码:<6~10位>:");
password = input.next();
num = password.length();
}while(num<6||num>10);
System.out.println("该会员密码是:"+password);
}
}
if (!date.matches("\\d{1,2}/\\d{1,2}")) {
System.out.println("输入格式不正确!");
continue;
} String[] s = date.split("/"); int month = Integer.parseInt(s[0]);
int day = Integer.parseInt(s[1]); if (month > 12 || month < 1) {
System.out.println("错误的月份!");
continue;
} if (day > 31 || day < 1) {
System.out.println("错误的日期!");
continue;
} if (month == 2 && day > 29) {
System.out.println("错误的日期!");
continue;
} if ((month == 4 || month == 5 || month == 9 || month == 11) && day > 30) {
System.out.println("错误的日期!");
continue;
} date = (month < 10 ? "0" + month : month) + "/" + (day < 10 ? "0" + day : day); break;
} System.out.println(date);
}代码啰嗦了点,lz将就着看
public class TTest {
public static void main(String [] args) throws ParseException {
Scanner input = new Scanner(System.in);
SimpleDateFormat Format = new SimpleDateFormat("MM/dd");//设置输入的日期的格式要求
String birthday=" ";//接收输入的日期
boolean flag = true;
do{
System.out.print("请输入会员的生日<月/日:00/00>:");
birthday = input.next();//接收会员生日
try{
Date x = Format.parse(birthday);
flag = birthday.equals(x)?true:false;
}catch(ParseException e){
System.out.println("生日形式输入错误!");
System.out.println();
}
}while(flag);
System.out.println("该会员生日是:"+birthday);
int num;
String password = " ";
do{
System.out.println("请输入会员密码:<6~10位>:");
password = input.next();
num = password.length();
}while(num<6||num>10);
System.out.println("该会员密码是:"+password);
}
}
你这样是不会异常的~因为即使你输入02/29 函数会自动转为03/01 所以不会出错的,用正则或一个个拆开来验证会比较严谨
private static List<String> DAY_30=Arrays.asList(new String[]{"2","4","6","9","11"});
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
SimpleDateFormat dateFormat=new SimpleDateFormat("MM/dd");
while(true){
System.out.println("请输入:");
String str=sc.nextLine();
try {
dateFormat.parse(str);
String mouth=str.split("/")[0];
int day=Integer.parseInt(str.split("/")[1]);
if(DAY_31.contains(mouth)&&(day>31||day<1)){
System.out.println("格式错误,请重新输入");
continue;
}
else if(DAY_30.contains(mouth)&&(day>30||day<1)){
System.out.println("格式错误,请重新输入");
continue;
}
else if(mouth.equals("2")&&(day>29||day<1)){
System.out.println("格式错误,请重新输入");
continue;
}else{
System.out.println("验证成功:"+str);
break;
}
} catch (Exception e) {
System.out.println("格式错误,请重新输入");
continue;
}
}
}还是很麻烦