Java 从文件中获取起始字和结束字之间的数据
我有产品评论的数据集,我想从该文件的文本和打印文本之间提取文本。我如何提取数据 文件包含以下格式的数据Java 从文件中获取起始字和结束字之间的数据,java,text,Java,Text,我有产品评论的数据集,我想从该文件的文本和打印文本之间提取文本。我如何提取数据 文件包含以下格式的数据 <review> id <reviewer></reviewer> <start word></end word> </review> id 我的代码是 File file = new File("D://Data/Dataset/unlabeled.review"); FileInputStream f
<review> id
<reviewer></reviewer>
<start word></end word>
</review>
id
我的代码是
File file = new File("D://Data/Dataset/unlabeled.review");
FileInputStream fis = new FileInputStream(file);
byte[] bytes = new byte[(int) file.length()];
fis.read(bytes);
fis.close();
String text = new String(bytes, "UTF-8");
System.out.println(text.substring(text.indexOf("<start word>"), text.lastIndexOf("</end word>")));
File File=new文件(“D://Data/Dataset/unlabeled.review”);
FileInputStream fis=新的FileInputStream(文件);
byte[]bytes=新字节[(int)file.length()];
fis.读取(字节);
fis.close();
字符串文本=新字符串(字节,“UTF-8”);
System.out.println(text.substring(text.indexOf(“”),text.lastIndexOf(“”));
您的提取代码如下:
text.substring(text.indexOf("<review_text>"),
text.lastIndexOf("</review_text>"));
text.substring(text.indexOf(“”),
text.lastIndexOf(“”);
此代码有三个问题:
indexOf
和lastIndexOf
方法返回参数字符串某次出现的第一个字符的偏移量。但您需要从“”后的第一个字符中提取“”
/“”
对,则代码不会提取每对之间的文本”
或没有”
,则调用索引中的一个或两个将返回-1,这将导致子字符串中出现异常
用一些代码。。您尝试了什么?例如,请参见