AngellaCan
2016-04-24 07:58java中关于字符串匹配的问题,哪里出了问题
/*
需求:当前有一张关键词表和一个新闻文本
要把在文本中所包含的词表中的关键词标识出来,(在这里我用的是前后加标识符)
然后输出到另一个文本
/
import java.io.;
public class adverbSiged {
static File txtFile;// 将所有路径定义为全局变量
static File advFile;
static File targetFile;
static String beginSign = "#";
static String endSign = "**";
adverbSiged(File txtFile, File adverbFile, File targetFile)
throws Exception {
this.txtFile = txtFile;
this.advFile = adverbFile;
this.targetFile = targetFile;
get();
}
public void get() throws Exception {
FileInputStream fisTxt = new FileInputStream(txtFile);
BufferedReader bufAdv = new BufferedReader(new FileReader(advFile));
BufferedWriter bwTar = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(targetFile), "utf-8"));
// 将原文件读取至数组和txtStr中
int txtLenth = fisTxt.available();
byte[] txt = new byte[txtLenth];
fisTxt.read(txt);
String txtStr = new String(txt);
// 将原字符串每个字符和词汇表每个词比较
for (int i = 0; i < txtStr.length() - 1;) {
String departStr = null;
String line = null;
boolean bool = false;//判断关键字表中是否有此关键字或词
while ((line = bufAdv.readLine()) != null) {
departStr = txtStr.substring(i, i + line.length());//读取与关键字等长的子串
if (departStr.equals(line)) {
bwTar.append(beginSign + line + endSign);
bool = true;
i = i + line.length();// 若找到此关键词,那么源字符串的角标向后移动此关键字的长度个位置
}
}
if (bool == false) {// 如果在整个词表都没有匹配到,那么将这一个字符输出,角标向后移一位。
bwTar.append(txtStr.subSequence(i, i + 1));
i = i + 1;
}
bwTar.flush();
}
fisTxt.close();
bufAdv.close();
bwTar.close();
}
public static void main(String[] args) throws Exception {
txtFile = new File("C:\\Users\\Administrator\\Desktop\\原文本.txt");
advFile = new File("C:\\Users\\Administrator\\Desktop\\词表.txt");
targetFile = new File("C:\\Users\\Administrator\\Desktop\\目标.txt");
new adverbSiged(txtFile, advFile, targetFile);
}
}
//程序运行后原文本直接复制到了目标文本,没有任何改变,而且文本中确实包含关键词,帮看看哪里出错了,感谢
- 点赞
- 回答
- 收藏
- 复制链接分享
3条回答
为你推荐
- Java语言中switch如何对字符串(String)类型实现一个选择的功能呢,要有个具体的代码才能理解
- 开发语言
- 3个回答
- 高分悬赏:Java语言怎么在多个字符串中匹配最相似的2个字符串呢,用println输出
- 开发语言
- 2个回答
- Java语言程序的编写,自动识别字符串中的人名地名,结果保存到out.txt,一行一个的格式
- 开发语言
- 2个回答
- java字符串匹配问题
- it技术
- 互联网问答
- IT行业问题
- 计算机技术
- 编程语言问答
- 0个回答
- 请教大家:java中文字符串的替换问题
- oo
- 0个回答
换一换