在Java中将文本文件表示为单个单元,并在文本中匹配字符串
-
03-07-2019 - |
题
如何将文本文件(或XML文件)表示为整个字符串,并在其中搜索(或匹配)特定字符串?
我创建了一个BufferedReader对象:
BufferedReader input = new BufferedReader(new FileReader(aFile));
然后我尝试使用Scanner类及其选项来指定不同的分隔符,如下所示:
//Scanner scantext = new Scanner(input);
//Scanner scantext = new Scanner(input).useDelimiter("");
Scanner scantext = new Scanner(input).useDelimiter("\n");
while (scantext.hasNext()) { ... }
使用像这样的扫描仪类我可以逐行读取文本,也可以逐字逐句阅读,但它对我没有帮助,因为有时在文本中,我想要处理,我有
</review><review>
我想说:如果找到<!>“; <review>
<!>”;在文本的任何地方,使用以下下一行(或一段文本)执行某些操作,直到找到<!> quot; </review>
<!> quot;。问题是<=>和<=>位于文本的不同位置,有时会粘贴到其他文本上(因此空格作为分隔符对我没有帮助。)
我原以为我可能会使用Java中的正则表达式API(Pattern和Matcher类),但它们似乎匹配特定的字符串或行,我希望将文本作为一个连续的字符串(至少这个是我对他们所读到的关于他们的印象。你能告诉我在这种情况下应该使用哪些结构/方法/类吗?谢谢。
其他提示
在我看来,您似乎正在尝试使用结构化的xml文件,并建议您查看 javax.xml.parsers.DocumentBuilder 或其他内置的 API 来解析文档。
使用XML解析器。
或者使用xpath,例如示例。
我原以为我可能会使用Java中的正则表达式API(Pattern和Matcher类),但它们似乎匹配特定的字符串或行,我希望将文本作为一个连续的字符串
嗯,是否有什么东西会阻止你将XML文件读入String,然后使用正则表达式API对其进行操作?
您可以使用例如文件轻松地将文件读入字符串来自Apache的 FileUtils Commons IO :见 readFileToString(File file, String encoding)
。
我还建议使用XML解析API ...但是因为你只想在<!>的情况下做一些事情;回顾<!>标签,也许你可以比DOM更好地使用SAX ......
我想在这里,我们可以将文本文件中的单个行复制到一个字符串中,然后尝试将子字符串(搜索字符串)与字符串(行)匹配
但是错误会产生错误,而不是像/或#等等。#/ p>