我想标记一个.txt文件,如下所示 产品,品牌 电视,名称:LG:索尼 冰箱,凯尔维纳特,名称:戈德瑞
我想省略第一行products,brands
将数据从下一行开始放入具有此结构的类的对象中 class Product { 字符串标题; 列出品牌; }
标题应包含“,”之前的第一个单词之前的任何内容 列表品牌应包含“名称:”之后的所有单独标记 我必须忽略“名称”这个词而不是放在对象字段中
示例名为prod的对象应包含此数据 prod.title =电视 品牌列表必须包含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();
}
}
}
答案 0 :(得分:0)
方法split()
接收空格很重要的正则表达式。
将拆分更改为:
String tokens[]=line.split("\\s*[,:]\\s*");
这应该有效。方括号表示“内部提到的任何字符”。 \\s*
表示“零个或多个空格。”
看来这就是你所需要的。
答案 1 :(得分:0)
Scanner
对象逐行阅读Pattern