首页 > 解决方案 > Java 指定文件中单个单词位置的最佳方法

问题描述

基本上,我遇到的一个问题有很多解决方案,但我想到的唯一一个是肮脏的,最终会得到很多样板代码。假设我们有一个包含这样行的日志文件。

127.0.0.1   Amigo   30.08.2012 16:08:13 LOGIN   OK <br>
192.168.100.2   Pete Tyson  30.08.2012 16:08:40 COMPLETE_TASK 15    OK <br>
146.34.15.5 Eduard Bentley  03.01.2014 03:45:23 LOGIN   OK

如果日志文件可以动态更改并且并非每一行都具有相同的长度并且我想从中取出用户名,那么最好的解决方案是什么?

编辑:

 private int atWhatPlaceDateIs(String[] line) {
    if(line[4].contains(":") && line[3].contains("."))
        return 1;
    else if (line[3].contains(":") && line[2].contains("."))
        return 0;

    return -1;
}

if(atWhatPlaceDateIs(line) == 1)
     date = line[3] + " " + line[4];
else if(atWhatPlaceDateIs(line) == 0)
     date = line[2] + " " + line[3];

这就是我对日期所做的,它总是在 2-3 或 3-4 索引

标签: javafilejava.util.scanner

解决方案


您应该考虑使用正则表达式。网络上有大量教程可以完成您所描述的内容。

此处的本教程应该为您提供足够的入门知识。


推荐阅读