问题:我有两个文件,一个是序列号,项目,价格,位置和其他文件的项目列表。所以我想比较两个文件,并用序列号打印文件1中重复项目的次数。读取两个文件(文本)并比较公共值并输出字符串?
文本1文件将有
文本2文件将有
输出应该是
所以在F ile1未按正确的顺序格式化,文件2按顺序(逐行)。
问题:我有两个文件,一个是序列号,项目,价格,位置和其他文件的项目列表。所以我想比较两个文件,并用序列号打印文件1中重复项目的次数。读取两个文件(文本)并比较公共值并输出字符串?
文本1文件将有
文本2文件将有
输出应该是
所以在F ile1未按正确的顺序格式化,文件2按顺序(逐行)。
由于您没有明显的代码或努力,因此我只会提示/指导您使用一些工具。
对于解析字符串:http://docs.oracle.com/javase/6/docs/api/java/lang/String.html
从文件读取:http://www.roseindia.net/java/beginners/java-read-file-line-by-line.shtml
而且我会建议你阅读文件#2第一和节约这些值到一个ArrayList,也许,这样你就可以遍历它们稍后当你做你的搜索。
好了我的方法,这将是
即使您的file1格式不正确,它的内容也有一些可以用来成功读取的格式。
对于每个商品,它包含所有信息(即序列号,名称,价格,位置),但不是按照某个顺序。因此,在阅读文件1中的每个项目时,请注意并使用以下图案 -
$
和.
字符。这样的问题不能通过单片JAVA代码最好地解决。如果你没有工具约束,那么推荐的解决方法是将数据从文件1导入到数据库表中,然后从程序中运行查询来获取任何你喜欢的信息。您可以根据项目轻松选择序列号,并根据位置对它们进行分组计数。
这种方法将确保您可以跟上不断变化的需求,如果您的文件很大,您将获得良好的性能。
我希望你对SQL和DB工具非常熟悉,所以我没有发布任何细节。
使用正则表达式。
Step one, tracing and splitting at [\d,], store results in map Step two, read in the word from the second file. say it's "pen" Step three, do regex search "pen" on each string within the map. Step four, if the above returns true , do something like ([A-Z][A-Z],) on each string within the map.