java - 如何从没有常量分隔符的文本行中提取字段?

标签 java text extract field delimiter

在每个字段之间没有明确的分隔符(分隔符)的情况下,从每行中提取每个字段的最佳方法是什么?

以下是我提取其字段所需的行示例:

3/3/2010 11:00:46 AM                      BASEMENT-IN          
3/3/2010 11:04:04 AM 2, YaserAlNaqeb      BASEMENT-OUT         
3/3/2010 11:04:06 AM                      BASEMENT-IN          
3/3/2010 11:04:18 AM                      BASEMENT-IN          
3/3/2010 11:14:32 AM 4, Dhileep              BASEMENT-OUT         
3/3/2010 11:14:34 AM                      BASEMENT-IN          
3/3/2010 11:14:41 AM                      BASEMENT-IN          
3/3/2010 11:15:33 AM 4, Dhileep           BASEMENT-IN          
3/3/2010 11:15:42 AM                      BASEMENT-IN          
3/3/2010 11:15:42 AM                      BASEMENT-IN          
3/3/2010 11:30:22 AM 34, KumarRaju        BASEMENT-IN          
3/3/2010 11:31:28 AM 39, Eldrin           BASEMENT-OUT         
3/3/2010 11:31:31 AM                      BASEMENT-IN          
3/3/2010 11:31:39 AM                      BASEMENT-IN          
3/3/2010 11:32:38 AM 39, Eldrin           BASEMENT-IN          
3/3/2010 11:32:47 AM                      BASEMENT-IN          
3/3/2010 11:32:47 AM                      BASEMENT-IN          
3/3/2010 11:33:26 AM 34, KumarRaju        BASEMENT-OUT         
3/3/2010 11:33:28 AM                      BASEMENT-IN    

每行有 6 个字段,其中一些字段可以为空。解决这个问题的最佳方法是什么?

  • 我正在使用 Java
<小时/>

版本 01

  • 字段 5 可以为空(但在所有情况下都应识别其存在)
  • 空格数量可以更改
  • 最后一个词可以更改

最佳答案

您可以按列号去掉日期和 BASEMENT-FOO 数据,因为它们总是出现在行中的同一点。然后你可以根据逗号分割余数。您是否需要处理转义逗号\或引号“foo, bar”中的逗号取决于您和您的业务需求。

关于java - 如何从没有常量分隔符的文本行中提取字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2377492/

相关文章:

java - 链表 : infinite loop

java - 在 Java 中不使用 JDBC 的 MySQL DB 连接(JSP/Servlets)

javascript - 安装node-java时出现LNK2001错误

java - 在 Java 中初始化非数字变量

java - 如何将字符串替换为一组一个字符

java - Tomcat 给出 org.springframework.beans.factory.CannotLoadBeanClassException :

c++ - 使用文本文件 c++ 中的名称创建变量或对象

shell - 无法将进程的 Unix ID 转换为文本?

java - 从整数值中提取个位和十位

windows - 从 Zip 文件夹中提取特定文件并重命名以包含 Zip 名称的批处理文件