英文:
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 bracesyyyy-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
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论