gpt4 book ai didi

java - 从一个句子中获取日期、时间和整数值java

转载 作者:行者123 更新时间:2023-11-30 07:13:45 24 4
gpt4 key购买 nike

假设英文句子:

String s = "您上次登录时间是 2013/10/04 13:06:45(0 天,0 小时,0 分钟)";

还有中文句子:

String s = "您上次登录是 2013/10/04 13:06:45( 0 天, 0 小时 0 分钟 )";

我试过了

  String[] words = s.split("\\s+");
for (int i = 0; i < words.length; i++) {
System.out.println(words[i]);
}

我得到英文句子

13:10:47,829 INFO  [STDOUT] Your
13:10:47,829 INFO [STDOUT] Last
13:10:47,829 INFO [STDOUT] Login
13:10:47,829 INFO [STDOUT] was
13:10:47,829 INFO [STDOUT] 2013/10/04
13:10:47,829 INFO [STDOUT] 13:06:45
13:10:47,829 INFO [STDOUT] (
13:10:47,829 INFO [STDOUT] 0
13:10:47,829 INFO [STDOUT] Days,
13:10:47,829 INFO [STDOUT] 0
13:10:47,829 INFO [STDOUT] Hours,
13:10:47,829 INFO [STDOUT] 0
13:10:47,829 INFO [STDOUT] Minutes
13:10:47,829 INFO [STDOUT] )

对于中文句子:

13:11:49,712 INFO  [STDOUT] 您上次登录是
13:11:49,712 INFO [STDOUT] 2013/10/04
13:11:49,712 INFO [STDOUT] 13:07:15(
13:11:49,712 INFO [STDOUT] 0
13:11:49,712 INFO [STDOUT] 天,
13:11:49,712 INFO [STDOUT] 0
13:11:49,712 INFO [STDOUT] 小时
13:11:49,712 INFO [STDOUT] 4
13:11:49,712 INFO [STDOUT] 分钟
13:11:49,712 INFO [STDOUT] )

在结果中,我可以轻松地从 eng 句子中获取日期、时间和整数值。但是当句子变为中文时,它无法使用相同的方式获取值。因为句子拆分后数组的个数不一样。有什么方法可以从一个句子中获取日期、时间和整数值,即使是不同的语言,而且句子拆分后返回的数组数量也不同。

最佳答案

 public static void main(String[] args) {
String english = "Your Last Login was 2013/10/04 13:06:45 ( 0 Days, 0 Hours, 0 Minutes )";
String chinese = "您上次登录是 2013/10/04 13:06:45( 0 天, 0 小时 0 分钟 )";

String datePattern = "\\d\\d\\d\\d/\\d\\d/\\d\\d";
String timePattern = "\\d\\d:\\d\\d:\\d\\d";

System.out.println(getMatch(english, datePattern));
System.out.println(getMatch(english, timePattern));
System.out.println(getMatch(english, "\\d Days"));
System.out.println(getMatch(english, "\\d Hours"));
System.out.println(getMatch(english, "\\d Minutes"));
System.out.println();
System.out.println(getMatch(chinese, datePattern));
System.out.println(getMatch(chinese, timePattern));
System.out.println(getMatch(chinese, "\\d 天"));
System.out.println(getMatch(chinese, "\\d 小时"));
System.out.println(getMatch(chinese, "\\d 分钟"));
}

private static String getMatch(String input, String regex) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
return matcher.group();
} else {
return "";
}
}

关于java - 从一个句子中获取日期、时间和整数值java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19173757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com