java - 从 Java 文本文件中获取时间值

标签 java time

有没有办法从文本文件中提取时间值。文本文件的格式为

jack ·约翰逊 周日 1100 - 1500,

我找不到一种方法可以单独从文本文件中提取这两次。下面的代码是我到目前为止所拥有的,它适用于字符串,但我找不到一种方法让它提取文本文件中的时间范围

Boolean isAvail = false;
Date day = new Date();

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

Scanner inFile1 = new Scanner(new File("F:\\Example\\text.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))
        {
        System.out.println(curVal);
        }
    }

最佳答案

如果您有如图所示的固定格式文件,则无需使用 DateFormat、扫描仪分隔符等使其复杂化。

只需逐行处理文件,按空格分割每一行,并将每个值放在数组中自己的位置,例如:

   Scanner inFile1 = new Scanner(new File("F:\\Example\\text.txt"));

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

    System.out.println(availability.get(0));
    String[] availabilityArray = availability.toArray(new String[0]);

    for (String line : availabilityArray) {
        System.out.println("line: " + line);
        System.out.println("----");
        String[] lineTokens = line.split("\\s");
        System.out.println("name: " + lineTokens[0] + " " + lineTokens[1]);
        System.out.println("day: " + lineTokens[2]);
        System.out.println("start: " + lineTokens[3]);
        System.out.println("end: " + lineTokens[5]);
        System.out.println("----");
    }

顺便说一句,有很多可能性,更复杂、更简单、更优雅等等......

关于java - 从 Java 文本文件中获取时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47584199/

相关文章:

java - 什么里面有什么?框架、 Pane 、按钮、标签、容器等

java - Android 客户端-服务器应用程序 - readLine() 不起作用

ruby-on-rails - 将 Rails 中的现有时间迁移为 DateTime,同时保持数据完整

java - 负数的BigDecimal.pow()

Java - 过早的 EOF - 编写网络阅读器的更好方法?

javascript - 每秒刷新日期的函数最终导致 Chrome 崩溃

mysql 5.5.50 将一天的多个事件计算为一个

java - 用于检查事件发生的时间容器

java - java - 如何在Java中的一段时间后停止执行?

java - 如何在 Eclipse 中使用 EGit 导入 gradle 项目? (libGDX)