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/