使用令牌进行文件解析

时间:2014-09-18 14:15:57

标签: java split token

我有一个文本文件,内容如下:

第1项,描述#brand1,brand2

第2项,描述#brand3

我有一个品牌数组列表和另一个项目列表。

我的代码读取并分配所有内容,直到它在项目描述后到达“#”...

    while(input.hasNextLine())
        {
            String line = input.nextLine();
            String[] token = line.split("[,#]+");

            item = token[0];
            description = token[1];

            brand = token[2];

        }  

我怎样才能让它正确阅读“#”之后的内容? 我应该提到一件商品可以属于两个或更多品牌

2 个答案:

答案 0 :(得分:1)

首先按“#”拆分处理结果,然后处理“,”。

答案 1 :(得分:0)

我相信你要找的是正则表达式(正则表达式)

它允许您设置一个模式,定义数据的结构如下:

"(?<item>.+),\s(?<description>.+)\s\#\s(?<brands>.+)"

(免责声明:只是一个手写的快速示例,可能无法正常工作) 然后使用匹配器将模式应用于字符串。

我强烈建议您阅读正则表达式,或者参考一下教程。它非常实用。 退房:http://docs.oracle.com/javase/tutorial/essential/regex/intro.html