关闭。这个问题需要更加突出重点。它目前不接受答案。**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。
5个月前关门了。改进这个问题如何找到下面输入的字符串长度是否为4。我想在字符长度4之前检查-符号。
**2020-08-09**
wgmfuz8q1#
替代验证,使用regex我们正在检查日期戳是否具有预期的格式,包括该年的四位数字,这意味着该年的长度为4。使用的正则表达式:
boolean isDateStampValid = Pattern.compile("\\b\\d{4}-\\d{2}-\\d{2}\\b").matcher(input).find();
上下文中的正则表达式:
public static void main(String[] args) { String input = "**2020-08-09**"; boolean isDateStampValid = Pattern.compile("\\b\\d{4}-\\d{2}-\\d{2}\\b").matcher(input).find(); System.out.println("Is date stamp in format yyyy-MM-dd: " + isDateStampValid); }
输出:
Is date stamp in format yyyy-MM-dd: true
4xy9mtcn2#
String[] dateSplit = "2020-08-09".split("-"); if (dateSplit[0].length() == 4) { return true; } else { return false; }
或
return "2020-08-09".split("-")[0].length() == 4;
3qpi33ja3#
试试这个。
boolean isLength4 = "**2020-08-09**".replace("**","").indexOf("-") == 4; System.out.printl(isLength4);
印刷品
true
处理日期的更好方法是使用java.time包中的类。 [] 忽略大括号之间的字符 yyyy-MM-dd 数字年、月、日。有很多选择。
[]
yyyy-MM-dd
String dateString = "**2020-08-09**"; try { LocalDate ld = LocalDate.parse(dateString, DateTimeFormatter .ofPattern("[**]yyyy-MM-dd[**]")); System.out.println(ld); } catch (DateTimeParseException pe) { System.out.println("Invalid date"); }
2020-08-09
可以使用另一个datetimeformatter更改输出。
3条答案
按热度按时间wgmfuz8q1#
替代验证,使用regex
我们正在检查日期戳是否具有预期的格式,包括该年的四位数字,这意味着该年的长度为4。
使用的正则表达式:
上下文中的正则表达式:
输出:
4xy9mtcn2#
或
3qpi33ja3#
试试这个。
印刷品
处理日期的更好方法是使用java.time包中的类。
[]
忽略大括号之间的字符yyyy-MM-dd
数字年、月、日。有很多选择。印刷品
可以使用另一个datetimeformatter更改输出。