如何找到输入字符串的前4个字符长度?

huangapple go评论64阅读模式
英文:

How to find input string first characters length is 4?

问题

如何查找下面的输入字符串长度是否为4。我想检查字符长度为4之前是否有破折号。

英文:

How to find below input string length 4 or not. I want to check - symbol before characters length 4 or not.

**2020-08-09**

答案1

得分: 1

尝试一下。

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("无效日期");
}

输出

2020-08-09

可以通过使用另一个 DateTimeFormatter 来改变输出。

英文:

Try this.

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

System.out.printl(isLength4);

Prints

true

A better approach for handling dates is to use classes from the java.time package.

  • [] ignore characters between braces
  • yyyy-MM-dd numeric year, month and day. Many options available.
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");
}

Prints

2020-08-09

The output can be altered by using another DateTimeFormatter.

答案2

得分: 0

Sure, here's the translated code:

String[] dateSplit = "2020-08-09".split("-");
if (dateSplit[0].length() == 4) {
    return true;
} else {
    return false;
}

or

return "2020-08-09".split("-")[0].length() == 4;
英文:
String[] dateSplit = "2020-08-09".split("-");
if (dateSplit[0].length() == 4) {
    return true;
} else {
    return false;
}

or

return "2020-08-09".split("-")[0].length() == 4;

答案3

得分: 0

替代验证,使用正则表达式

我们正在检查日期时间戳是否具有预期的格式,包括年份具有四位数字 - 这意味着年份的长度为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("日期时间戳格式是否为yyyy-MM-dd: " + isDateStampValid);
}

输出:

日期时间戳格式是否为yyyy-MM-dd: true
英文:

Alternative Validation, Using REGEX

We are checking that the date stamp has expected format, including that year har four digits - meaning that year has length 4.

Used regex:

boolean isDateStampValid = Pattern.compile("\\b\\d{4}-\\d{2}-\\d{2}\\b").matcher(input).find();

Regex in context:

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);
}

Output:

Is date stamp in format yyyy-MM-dd: true

huangapple
  • 本文由 发表于 2020年8月22日 09:40:40
  • 转载请务必保留本文链接:https://go.coder-hub.com/63531808.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定