-2

我想标记一个 .txt 文件,该文件如下产品,品牌电视,名称:lg:索尼冰箱,kelvinator,名称:godrej

我想省略第一行products,brands

并将下一行的数据放入具有此结构的类的对象中 class Product{ String title; 列出品牌;}

标题应该在“,”之前的第一个单词之前包含任何内容列表品牌应该在“名称”之后包含所有单独的标记:我必须忽略“名称”这个词并且不要放入对象字段

例如,名为 prod 的对象应包含此数据 prod.title=tv 品牌列表必须包含 lg 和 sony

最好的方法是什么?

这是代码::

public class tokenize {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    int i=0;
    try {
        FileReader fr=new FileReader("myfiles\\"+"sample.txt");
        BufferedReader br=new BufferedReader(fr);
        String line;
        try {
            while((line=br.readLine())!=null){
                String tokens[]=line.split(", | :");
                while(tokens.length!=0)
                {
                    System.out.println(tokens[i]);
                    i++;
                    System.out.println();
                }

            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

}
4

2 回答 2

0
  1. 我会使用一个Scanner对象逐行读取
  2. Pattern并通过 Scanner插入需要的
于 2013-07-14T15:15:25.433 回答
0

方法split()接收正则表达式,其中空格很重要。

将您的拆分更改为:

String tokens[]=line.split("\\s*[,:]\\s*");

这应该有效。方括号的意思是“里面提到的任何字符”。\\s*意思是“零个或多个空格”。

看来这就是您所需要的。

于 2013-07-14T15:13:23.387 回答