假设您有一个包含以下内容的txt文件:
<tag><info>George 34 Washington Professor
Alexander 22 London Student
Jessica 18 Moscow Student<info><tag>
当您使用readline从文本文件中挖出参数时,如何忽略这些标记?
答案 0 :(得分:1)
正则表达式有什么问题?
Scanner s = new Scanner(new File("file.txt"));
while (s.hasNext())
{
String line = s.nextLine().replaceAll("<[^>]*>", "");
System.out.println(line);
}
然而,上述内容不适用于分割为多行的标签,您必须做一些更复杂的事情:
Scanner s = new Scanner(new File("file.txt"));
boolean inTag = false;
while (s.hasNext())
{
String lineTemp = s.nextLine();
for (char c: line.toCharArray())
{
switch (c)
{
case '<': inTag = true; break;
case '>': inTag = false; break;
default:
if (!inTag)
sb.append(c);
}
}
String line = sb.toString();
System.out.println(line);
}
上述任何一个帐户都不会显示<
和>
,只能指示标记的开头和结尾。
答案 1 :(得分:0)
您可以使用正则表达式从行中删除标记 p>
String line = line.replaceAll("<.+?>", "");