java - 如何解析带有分隔符的文本?

标签 java

Possible Duplicate:
How to parse this output and separate each field/word

我想解析以下数据,以便获得下面指定的输出。

输入:

RTRV-ALM-EQPT::ALL:RA01;

   SIMULATOR 09-11-20 13:52:15
M  RA01 COMPLD
   "SLOT-1-1-1,CMP:MN,T-FANCURRENT-1-HIGH,NSA,01-10-09,00-00-00,,:\"Fan-T\","
   "SLOT-1-1-1,CMP:MJ,T-BATTERYPWR-2-LOW,NSA,01-10-09,00-00-00,,:\"Battery-T\","
   "SLOT-1-1-2,CMP:CR,PROC_FAIL,SA,09-11-20,13-51-55,,:\"Processor Failure\","
   "SLOT-1-1-3,OLC:MN,T-LASERCURR-1-HIGH,SA, 01-10-07,13-21-03,,:\"Laser-T\","
   "SLOT-1-1-3,OLC:MJ,T-LASERCURR-2-LOW,NSA, 01-10-02,21-32-11,,:\" Laser-T\","
   "SLOT-1-1-4,OLC:MN,T-LASERCURR-1-HIGH,SA,01-10-05,02-14-03,,:\"Laser-T\","
   "SLOT-1-1-4,OLC:MJ,T-LASERCURR-2-LOW,NSA,01-10-04,01-03-02,,:\"Laser-T\","
;

输出:

1) RTRV-ALM-EQPT::ALL:RA01;
2) SIMULATOR 
3) 09-11-20 
4) 13:52:15
5) M  
6) RA01 
7) COMPLD
8) "SLOT-1-1-1,CMP:MN,T-FANCURRENT-1-HIGH,NSA,01-10-09,00-00-00,,:\"Fan-T\","
9) "SLOT-1-1-1,CMP:MJ,T-BATTERYPWR-2-LOW,NSA,01-10-09,00-00-00,,:\"Battery-T\","
10) "SLOT-1-1-2,CMP:CR,PROC_FAIL,SA,09-11-20,13-51-55,,:\"Processor Failure\","
11) "SLOT-1-1-3,OLC:MN,T-LASERCURR-1-HIGH,SA, 01-10-07,13-21-03,,:\"Laser-T\","
12) "SLOT-1-1-3,OLC:MJ,T-LASERCURR-2-LOW,NSA, 01-10-02,21-32-11,,:\" Laser-T\","
13) "SLOT-1-1-4,OLC:MN,T-LASERCURR-1-HIGH,SA,01-10-05,02-14-03,,:\"Laser-T\","
14) "SLOT-1-1-4,OLC:MJ,T-LASERCURR-2-LOW,NSA,01-10-04,01-03-02,,:\"Laser-T\","

最佳答案

最好的方法可能是不要考虑将第一个文本转换为第二个文本。

相反,首先考虑将第一个文本解析为一组表示它们实际含义的 Java 对象。例如,输入的第二/第三行可能由具有“area”、“day”和“time”属性的 Test 类表示。 (只有您才能根据您对一切含义的了解提出合理的模型)。

然后,一旦您在内存中获得了文件信息的良好表示,您就可以考虑像第二种情况一样打印为文本。现在应该很容易从 Java 对象中打印出各种字段和属性,而不是尝试即时转换输入文本。

关于java - 如何解析带有分隔符的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1769708/

相关文章:

java - Spring Jackson将json对象转换为java数组

java - Hibernate 持久方法文档中的 "called outside of transaction"是什么意思

java - 使用 JFrame 和 JPanel 绘制线条

java - 任何人都可以建议我在 hibernate 中检索记录的最佳方法吗

java - 为什么列表元素不交换?

java - 我可以将只有实例变量的类称为包装类吗?

Java 异步处理

java - 在 Beanstalk 中使用上下文路径部署 war 的可接受方式

java - java中的默认方法是什么?

java - 添加两个整数时 Java 中的意外输出