java - 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 索引
解决方案
您应该考虑使用正则表达式。网络上有大量教程可以完成您所描述的内容。
此处的本教程应该为您提供足够的入门知识。
推荐阅读
- rest - 我应该为业务逻辑失败抛出 400 或 500 服务错误吗?
- ruby-on-rails - 将 MODEL_id 传递给另一个模型参数
- c# - 如何在 C# 中获取 Blazor 的事件?
- linux - Using hexdump and how to find associated character?
- intellij-idea - intellij“新分支”菜单项未激活
- amazon-web-services - 在 eks 节点上安装 nvidia 驱动程序
- xcode - 如何让 Xcode 设置 LC_RPATH(以便 @rpath 加载工作)?
- wordpress - 是否可以使用带有管道的 wordpress 进行柏树测试?
- r - R Shiny App 错误:“警告:plot.window 中的错误:需要有限的 'xlim' 值”
- python - 无法在某些区域循环进程 - python