我想检查dd/MM/yy以下格式列表中是否存在日期格式:
String validDateFormats = "dd/MM/yyyy,dd-MM-yyyy,MM/dd/yyyy,MM-dd-yyyy";
Run Code Online (Sandbox Code Playgroud)
以下返回true,即使我预期false(因为列表不包含格式dd/MM/yy):
System.out.println(validDateFormats.contains("dd/MM/yy"));
Run Code Online (Sandbox Code Playgroud)
以下返回0事件虽然我预期-1(因为列表不包含格式dd/MM/yy):
System.out.println(validDateFormats.indexOf("dd/MM/yy"));
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到我正在寻找的行为?
目前,你是不是在日期格式列表中寻找一个日期格式,你正在寻找一个日期格式String单中String包含多个逗号分隔的日期格式.
因为它String开始于"dd/MM/yyyy",包含"dd/MM/yy",contains并且indexOf找到匹配(根据您的要求,这是误报).
为了仅搜索完整日期格式(在逗号分隔列表中),您应该将输入拆分String为a List<String>,并运行包含List:
Arrays.asList(validDateFormats.split(",")).contains("dd/MM/yy")
Run Code Online (Sandbox Code Playgroud)
validDateFormats.split(",")将输入String拆分为String数组(使用逗号作为分隔符).Arrays.asList创建一个List<String>由该数组支持的数据,它允许您运行List的contains方法来搜索"dd/MM/yy"日期格式.这将按false预期返回.
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |