如何在Java中检查字符串的格式是否为MM-YY?
我必须向数据库中添加一个格式为“MM-YY”的字符串,该字符串表示信用卡的到期日期,其中MM是月份,YY是一年的最后两位数字,如何在Java中检查字符串是否为这种特定格式 使用正则表达式:如何在Java中检查字符串的格式是否为MM-YY?,java,sql,controls,string-formatting,Java,Sql,Controls,String Formatting,我必须向数据库中添加一个格式为“MM-YY”的字符串,该字符串表示信用卡的到期日期,其中MM是月份,YY是一年的最后两位数字,如何在Java中检查字符串是否为这种特定格式 使用正则表达式: String myString = "12-99"; if( myString.matches("((0[1-9])|(1[0-2]))-\\d{2}") ){ System.out.println("Correct format"); } else{ System.out.println("In
String myString = "12-99";
if( myString.matches("((0[1-9])|(1[0-2]))-\\d{2}") ){
System.out.println("Correct format");
}
else{
System.out.println("Incorrect format");
}
尝试使用下面的正则表达式
String str = "10-18";
if (str.matches("([0-9]{2})-([0-9]{2})"))
System.out.println("Correct");
else
System.out.println("Incorrect");
java.time.YearMonth
解析为一个。异常陷阱
String input = "99-18" ; // Valid: "01-18" Invalid: "99-18"
DateTimeFormatter f = DateTimeFormatter.ofPattern( "MM-uu" ) ;
YearMonth ym = null ;
try {
ym = YearMonth.parse( input , f ) ;
} catch ( DateTimeParseException e ) {
System.out.println( "Invalid input: " + input ) ;
}
System.out.println( "ym.toString(): " + ym ) ;
看这个
无效输入:99-18
ym.toString():null
关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,& 该项目现已启动,建议迁移到类 要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是 您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要
java.sql.*
类
从哪里获得java.time类
- 、和更高版本-标准Java API的一部分,带有捆绑实现。
- Java9添加了一些次要功能和修复
- 及
- 大多数java.time功能都在中向后移植到Java6和Java7
-
- 更高版本的Android捆绑包实现了java.time类
- 对于早期的Android(请看:@rieckpil这个问题不是完全重复的。这个问题是关于年-月-日的,而这个问题是关于年-月-日的。不同的解决方案,在这里使用类。类似:@BasilBourque,我没有将这个问题标记为重复。只是发布了一个可能的方式来支持自己找到解决方案;)谢谢大家,我解决了这个问题