如何用JAVA技术编写一个两文件内容比较的程序

如题所述

第1个回答  2013-08-27
没有做过你的这种程序的实现,但是下面的java代码或许多你有帮助

[此程序实现的是一个文本查找器,即是,

能查找出里面符合你要寻找的内容,并说明有几处,
这个有点像写字板里面的查找器的功能,(需要联系Q二七四二33六七二)
希望对你两个文件的相同的字符比较有提示作用]

//这个输入的内容有限,就不能全部显示代码,写点供参考
/**类matchFun用于处理有关字符串查找和替换算法*/
class matchFun{
StringBuffer repStr;

/*方法strFind用于实现字符串查找,返回匹配的次数*/
public int strFind(String s1,String s2,int pos)
{
/*变量i和j分别表示主串和模式串中当前字符串的位置,k表示匹配次数*/
int i,j,k=0;
//pos代表主串中开始比较的位置
i = pos;
j = 0;
while(i<s1.length()&&j<s2.length())
{
if(s1.charAt(i) == s2.charAt(j))
{
++i; ++j;
if(j==s2.length())
{
//j=s2.length()表示字符串匹配成功,匹配次数加1
k = k+1;
//将指示主串和模式串中当前字符的变量i和j进行回退
i = i-j+1;
j = 0;
}
}
else {i = i-j+1; j = 0;}
}
return k;
}
/*方法strReplace用于实现字符串替换操作,返回替换的次数*/
public int strReplace(String s1,String s2,String s3,int pos)
{
/*变量i和j分别表示主串和模式串中当前字符串的位置,k表示匹配次数*/
int i,j,k=0;
i = pos;
j = 0;
//将s1转化成StringBuffer型进行操作
repStr = new StringBuffer(s1);

while(i<repStr.length()&&j<s2.length())
{
if(repStr.charAt(i) == s2.charAt(j))
{
++i; ++j;
if(j==s2.length())
{
/*j=s2.length()表示字符串匹配成功,匹配次数加1,此外对主串进行字符串替换*/
k = k+1;
repStr.replace(i-j,i,s3);
//将j进行重新赋值开始新的比较
j = 0;
}
}
else {i = i-j+1; j = 0;}
}
return k;
}
}
相似回答
大家正在搜