Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更好的解析文件的方法?_Java_File_Filereader - Fatal编程技术网

Java 更好的解析文件的方法?

Java 更好的解析文件的方法?,java,file,filereader,Java,File,Filereader,我有一份员工的样本数据 Brad Senior <Fname>Brad Junior</Fname> CHICAGO, March 6 1990 - He is a great Java Developer. He has worked in XYZ company. 老布拉德 小布拉德 芝加哥,1990年3月6日-他是一位伟大的Java开发人员。 他在XYZ公司工作过。 数据格式如下: Person's name <Fname> xxx <

我有一份员工的样本数据

Brad Senior
<Fname>Brad Junior</Fname>
    CHICAGO, March 6 1990 - He is a great Java Developer.
He has worked in XYZ company.
老布拉德 小布拉德 芝加哥,1990年3月6日-他是一位伟大的Java开发人员。 他在XYZ公司工作过。 数据格式如下:

Person's name
<Fname> xxx </Fname>   // Optional
   Current Location, DOB - Description about his work.
人名
xxx//可选
当前位置,DOB-关于其工作的描述。
我可以使用BufferedReader和许多条件来解析它

是否有更好的方法来删除此内容(例如Regex)并将其存储在Employee对象中


我不能使用外部库


谢谢。

您可以将解析器生成器用作


当格式变得更复杂时,它非常有用。如果扩展了文件格式,还可以简化解析器的维护。

更好的意见是,您的问题天生无法回答。正如托比亚斯所说,解析器是有争议的,您的选择是巨大的。我建议使用与之相反的行业标准,因为它在我能找到的任何地方都没有许可证信息。

如果数据是XML格式的,请使用XML解析器……说真的,这么多数据都是实际的XML格式,或者这是确切的数据格式?如果是标准格式,请使用解析器(即XML或其他格式)。正则表达式仅适用于正则语言(即,如果您有一个嵌套的标记,如
,它将不起作用)。在这种情况下,标记化是最好的。数据不是XML格式。它是按照给定的格式。在下面的链接中,你可以找到cup的许可证:谢谢,我显然找错了地方。我不能使用外部库。您能提供其他方法吗?不幸的是,具有该限制的最简单解决方案是Regex;尽管如果您需要速度,自定义逻辑将始终优于任何外部库,因为它是唯一归因于这种情况的。此外,切换到NIO,文件操作可以是非阻塞的,并且比“iostream.h”包装器(即“java.io”)快得离谱。理想的设计应该是“工厂”综合体,在这里,数据被提供给静态实例化器以生成Employee对象。我知道这不是你想要的答案,我向你表示哀悼。