在Java中使用正则表达式获取两个独立的时间值

在Java中使用正则表达式获取两个独立的时间值,java,Java,到目前为止,我已经成功地从一个文本文件中获取了时间值。”09:00 19:00'. 这就是文本文件中设置的时间值。有没有办法把这两个值分开。比如“开始时间-09:00”和“结束时间-19:00”。我已经能够从文本文件中获取值“09:00 19:00”。我找不到的只是把它们分开的能力 String available = null; Boolean isAvail; Date day = new Date(); SimpleDateFormat s

到目前为止,我已经成功地从一个文本文件中获取了时间值。”09:00 19:00'. 这就是文本文件中设置的时间值。有没有办法把这两个值分开。比如“开始时间-09:00”和“结束时间-19:00”。我已经能够从文本文件中获取值“09:00 19:00”。我找不到的只是把它们分开的能力

String available = null;
        Boolean isAvail;
        Date day = new Date();

        SimpleDateFormat simpleDateformat = new SimpleDateFormat("EEEE");
        String token1 = "";

        Scanner inFile1 = new Scanner(new File("D:\\Jordanstown\\NetBeans Projects\\COM373\\Availabilty Update File.txt")).useDelimiter(",\\s*");

        List<String> availability = new ArrayList<String>();

        while (inFile1.hasNext()) 
            {
                token1 = inFile1.next();
                availability.add(token1);
                }
        inFile1.close();


    String[] availabilityArray = availability.toArray(new String[0]);

    String searchArray = simpleDateformat.format(day);
    for (String curVal : availabilityArray)
    {
        if (curVal.contains(searchArray))
        {
        Pattern pattern = Pattern.compile("'(.*?)'");
        Matcher matcher = pattern.matcher(curVal);
            if (matcher.find())
            {
                //System.out.println(matcher.group(1));
                available = matcher.group(1);

            }
        }
    }
    //I would want to have these 2 strings being the 2 times from the text file
    String timeStart = "14:00";
    String timeEnd = "20:00";

    LocalTime start = LocalTime.parse(timeStart);
    LocalTime stop = LocalTime.parse(timeEnd);
    LocalTime now = LocalTime.now();
    if (now.isAfter(start) && now.isBefore(stop)) 
    {
        isAvail = true;
        System.out.println(isAvail);
    }else{
        isAvail=false;
        System.out.println(isAvail);
    }
String available=null;
布尔伊萨维尔;
日期日期=新日期();
SimpleDataFormat SimpleDataFormat=新的SimpleDataFormat(“EEEE”);
字符串标记1=“”;
Scanner inFile1=新的扫描仪(新文件(“D:\\Jordanstown\\NetBeans Projects\\COM373\\availability Update File.txt”))。使用分隔符(“,\\s*”);
列表可用性=新建ArrayList();
while(inFile1.hasNext())
{
token1=inFile1.next();
可用性。添加(令牌1);
}
inFile1.close();
String[]availabilityArray=availability.toArray(新字符串[0]);
String searchArray=SimpleDataFormat.format(天);
for(字符串曲线:availabilityArray)
{
if(曲线包含(搜索数组))
{
Pattern=Pattern.compile(“(.*?”);
Matcher Matcher=pattern.Matcher(曲线);
if(matcher.find())
{
//系统输出println(匹配器组(1));
可用=匹配器组(1);
}
}
}
//我希望这2个字符串是文本文件中的2倍
字符串timeStart=“14:00”;
字符串timeEnd=“20:00”;
LocalTime start=LocalTime.parse(timeStart);
LocalTime stop=LocalTime.parse(timeEnd);
LocalTime now=LocalTime.now();
if(now.isAfter(开始)和&now.isBefore(停止))
{
isAvail=真;
System.out.println(isAvail);
}否则{
isAvail=假;
System.out.println(isAvail);
}
感谢您提前提供的任何帮助

只需在分隔空间中插入字符串即可

String input = "09:00 19:00";
String[] values = input.split(" ");
String startTime = values[0];
String endTime = values[1];
System.out.println(startTime); // prints: 09:00
System.out.println(endTime);   // prints: 19:00
您还可以使用和:

这些都是
String
类上的常用方法,如果您阅读文档,即

String input = "09:00 19:00";
int idx = input.indexOf(' ');
String startTime = input.substring(0, idx);
String endTime = input.substring(idx + 1);
System.out.println(startTime); // prints: 09:00
System.out.println(endTime);   // prints: 19:00