当前位置: 首页 > 面试题库 >

Java:检查字符串中是否有1次或多次

韦安怡
2023-03-14
问题内容

我正在从文件中解析文本并尝试查看时间。我首先需要检查文本中是否有时间。文本中唯一一致的模式是所有时间都表示为1或2位数字:2位数字。我编写了一些Java代码来查看是否可以找到正在查看的String一次或多次。

String timePattern = "\\d\\d?:\\d\\d";

if(textWithTime.matches(timePattern)){
System.out.println("MATCH");
} else {
System.out.println("NO MATCH");
}

但是,当我的String textWithTime等于“
06:45/07:52/10:27”或“发生于06:22”时,我被告知没有匹配项。如何检查文本中是否有时间模式?


问题答案:

matches检查整个字符串是否与使用的正则表达式匹配,并且由于该正则表达式只有一部分可以匹配false,因此您将得到结果。

解决方法是.*在正则表达式的开头和结尾处添加内容,以使其与匹配的子字符串之前或之后的部分匹配。

textWithTime.matches(".*\\d\\d?:\\d\\d.*");

但是此解决方案必须遍历字符串的所有字符才能对其进行评估。

更好的方法是使用类中的find()方法,Matcher该方法将在第一个匹配项后停止迭代(或者false在找不到正则表达式匹配项的情况下返回)。

Pattern p = Pattern.compile("\\d\\d?:\\d\\d");
Matcher m = p.matcher(textWithTime);
if (m.find()){
    System.out.println("MATCH");
} else {
    System.out.println("NO MATCH");
}


 类似资料:
  • 本文向大家介绍检查Java中的字符串是否为空(“”)或null,包括了检查Java中的字符串是否为空(“”)或null的使用技巧和注意事项,需要的朋友参考一下 要检查Java中的字符串是否为空或为空,请使用==运算符。 假设我们有以下字符串。 现在让我们检查两个字符串是否为null或为空。结果将为布尔值。 示例 输出结果

  • 如何检查一个字符串在Java中是否有多个大写字符(两个或多个相邻)?我尝试过:

  • 在下面的代码中,我需要检查版本字符串是否为空,然后将其值附加到请求变量。 如何检查不在if条件下?

  • 问题内容: 如何检查是否是那里的? 我想分配给是否有结果,否则。 我当前的代码是: 问题答案:

  • 问题内容: 我正在编写一个程序,其中用户以以下格式输入字符串: 我需要检查字符串中是否有数字 然后只提取数字。 如果我使用或,则无论输入的内容是什么,程序都无法在字符串中找到数字,但是仅在只有数字的情况下才能使用。 我可以使用什么作为查找和提取的解决方案? 问题答案: 我使用的解决方案如下所示: 我确信这不是一个完美的解决方案,但它满足了我的需求。谢谢大家的帮助。:)

  • 考虑以下键(under_score)和字段(lowerCamel): 我正在Java中寻找一种有效的方法来检查是否在中,我希望以下返回: 我的代码: 我可以用下划线替换所有小写,但我正在寻找更有效的方法。