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

h9a6wy2h  于 2021-07-06  发布在  Java
关注(0)|答案(3)|浏览(453)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

5个月前关门了。
改进这个问题
如何找到下面输入的字符串长度是否为4。我想在字符长度4之前检查-符号。


**2020-08-09**
wgmfuz8q

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
4xy9mtcn

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;
3qpi33ja

3qpi33ja3#

试试这个。

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

System.out.printl(isLength4);

印刷品

true

处理日期的更好方法是使用java.time包中的类。 [] 忽略大括号之间的字符 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更改输出。

相关问题