如何用java程序提取两个文本中相同的字符串

如题所述

第1个回答  推荐于2018-04-12
你的意思是不是从两个txt中提取出相同的字符串?看看下面代码:从当前工作目录下有1.txt和2.txt提取出它们相同的子字符串。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashSet;
public class Test{
public static String read(File file){
String string="";
InputStreamReader isr;
try {
isr = new InputStreamReader(new FileInputStream(file));
BufferedReader br=new BufferedReader(isr);
int i=0;
while(true){
i=br.read();
if(i!=-1)
string=string+String.valueOf((char)i);
else break;
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
return string;
}
public static HashSet<String> sameSubString(String s1,String s2){

ArrayList<String> sub1 = new ArrayList<String>();//保存s1的子串
ArrayList<String> sub2 = new ArrayList<String>();//保存s2的子串
HashSet<String> result = new HashSet<String>();//保存相同的子串

//求s1的子串
for(int i = 1;i<s1.length();i++){
for(int j = 0;j<=s1.length()-i;j++){
sub1.add(s1.substring(j,j+i));
}
}

//求s2的子串
for(int i = 1;i<s2.length();i++){
for(int j = 0;j<=s2.length()-i;j++){
sub2.add(s2.substring(j,j+i));
}
}

System.out.println("\"AABBC\"的子串 : " + sub1);
System.out.println("\"ABBCC\"的子串 : " + sub2);

for(String s: sub1)
if(sub2.contains(s))
result.add(s);

for(String s: sub2)
if(sub1.contains(s))
result.add(s);

return result;
}
public static void main(String[] args) throws IOException {
File file=new File("1.txt");
String s1=Test.read(file);
System.out.println(s1);
file=new File("2.txt");
String s2=Test.read(file);
System.out.println(s2);
HashSet<String> result=Test.sameSubString(s1, s2);
System.out.println("相同的子串 : " + result);

}

}
有什么疑问hi我或追问。本回答被网友采纳
第2个回答  2012-05-01
定义JTextField field=new JTextField();
String textfield=field.getText();就可以了
第3个回答  2012-05-03
用subString看看!
相似回答