Java 如何找到输入字符串的第一个字符长度为4?

Java 如何找到输入字符串的第一个字符长度为4?,java,Java,如何找到以下输入字符串长度是否为4。我想检查字符长度是否为4之前的-symbol **2020-08-09** 或 试试这个 boolean isLength4 = "**2020-08-09**".replace("**","").indexOf("-") == 4; System.out.printl(isLength4); 印刷品 true 2020-08-09 处理日期的更好方法是使用包中的类 [

如何找到以下输入字符串长度是否为4。我想检查字符长度是否为4之前的-symbol

**2020-08-09**

试试这个

boolean isLength4 = "**2020-08-09**".replace("**","").indexOf("-") == 4;

System.out.printl(isLength4);
印刷品

true
2020-08-09
处理日期的更好方法是使用包中的类

  • []
    忽略大括号之间的字符
  • yyyy-MM-dd
    数字年、月和日。有很多选择
印刷品

true
2020-08-09

可以使用另一种方法更改输出。

使用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
上下文中的正则表达式:

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
输出:

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

我是我不知道该怎么办。你能解释一下发生了什么吗?我想先检查-符号字符长度4或不我想检查年份字符长度4或不你可以在
-
处拆分,获取数组的第一个元素,将**替换为零,然后检查长度…嗯。。。看起来像是约会。您可能应该使用一个JavaSE数据解析器,而不是尝试“stringbash”日期来提取年份。。。如果这就是你想要做的。