📄 addfactor.java.bak
字号:
import java.util.Scanner;
import java.io.*;
public class Addfactor
{
public static void main(String[] args) throws IOException
{
File fin = new File("final.txt");
File fin2 = new File("factor_seg.txt");
FileWriter fout = new FileWriter("addfactor.txt");
Scanner scan = new Scanner (fin);
Scanner scan2 = new Scanner (fin2);
String str1,str2,str3;
while (scan.hasNextLine())
{
str1 = scan.nextLine();
int i=0;
int index[] = new int [50];
int length[] = new int [50];
char letters[] = new char [50];
while(scan2.hasNextLine())
{
str2 =scan2.nextLine();//词表中的一行
Scanner scan3 = new Scanner (str2);
scan3.useDelimiter("\\s+");
str3 = scan3.next();
char letter='E';
String str4="";
while (scan3.hasNext())
{
str4 = scan3.next();
letter = str4.charAt(0);
if(letter != 'a' && letter != 'b' && letter != 'c' && letter != 'd'&& letter != 'n'&& letter != '0'&& letter != 'A')
str3 = str3 + " " + str4;
else break;
}
if(str3.charAt(0)=='A') str3 = str3.substring(5);
else letter = str4.charAt(1);
int inde = str1.indexOf(str3);//词在句中的索引
int slen = str3.length();
while(inde != -1)
{
index[i] = inde; letters[i]=letter;length[i]=slen;
i++;
inde = str1.indexOf(str3,inde+slen);
}
}
if(i>0)
{int a,b,t,u;
char v;
for(a=1;a<i;a++)//用冒泡法对数组index排序
for (b=i-1;b>=a;b--)
{
if (index[b-1]>index[b])
{ u = index[b-1];v = letters[b-1];t = length[b-1];
index[b-1]=index[b];letters[b-1]=letters[b];length[b-1]=length[b];
index[b]=u;letters[b]=v;length[b]=t;
}
}
for(int j=0;j<i-1;j++)//删去index中重复的值
{
if (index[j]==index[j+1])
{
for(int k=j;k<i-1;k++)
{index[k]=index[k+1];
letters[k]=letters[k+1];
length[k]=length[k+1];
}
i--;
}
if(j<i-1)
{
if(index[j]+length[j]==index[j+1]+length[j+1])
{
for(int k=j+1;k<i-1;k++)
{
index[k]=index[k+1];
letters[k]=letters[k+1];
length[k]=length[k+1];
}
i--;
}
}
}
int m;
String str5;
for (m=0;m<i;m++)
{
if(m==0)str5 = str1.substring(0,index[m]);
else str5 = str1.substring(index[m-1],index[m]);
fout.write(str5 + "#&");
fout.write(letters[m]);
}
str5 = str1.substring(index[m-1]);
fout.write(str5);
}
else fout.write(str1);
scan2 = new Scanner (fin2);
fout.write("\n");
}
scan.close();
scan2.close();
fout.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -