如何用java程序提取两个文本中相同的字符串 10
3个回答
展开全部
你的意思是不是从两个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我或追问。
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我或追问。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义JTextField field=new JTextField();
String textfield=field.getText();就可以了
String textfield=field.getText();就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用subString看看!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询