如何从硒Java中的字符串中删除动态子字符串

时间:2019-11-19 10:45:06

标签: java selenium

我想从动态日期时间的字符串中删除子字符串。

示例:

  

2019年11月19日,美国东部时间上午05:41:08

我需要:

  

2019年11月19日,美国东部时间上午5时这类字符串

我想从字符串中删除分钟和秒。

3 个答案:

答案 0 :(得分:2)

您可以尝试用正则表达式替换字符串:

String input = "Nov 19, 2019 05:41:08 AM EST";
String output = input.replaceAll("\\b(\\d{2}):\\d{2}:\\d{2}\\b", "$1");
System.out.println(output);

此打印:

Nov 19, 2019 05 AM EST

也许更健壮的方法是返回DateLocalDate/LocalDateTime,后者生成当前输出,并使用所需的新蒙版进行格式化。

答案 1 :(得分:2)

您可以使用正则表达式删除第一个:和第一个空格之间的所有内容

String original = "Nov 19, 2019 05:41:08 AM EST"; 
String stripped = original.replaceAll(":.*? ", " ");
System.out.print(stripped); // prints Nov 19, 2019 05 AM EST

答案 2 :(得分:1)

如果您对RegEx不满意,可以使用以下解决方案:

public class Main {
    public static void main(String[] args) {        
        String dateString="Nov 19, 2019 05:41:08 AM EST";
        String requiredString=dateString.replace(dateString.substring(dateString.indexOf(':'),dateString.indexOf(' ',dateString.indexOf(':'))),"");
        System.out.println(requiredString);
    }
}

输出:

Nov 19, 2019 05 AM EST

还有许多其他方式,例如使用DateTimeFormatter