
正文
java抽取相同代码 java抽取方法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java 中IO流操作字符串 两个文件中有一些相同的代码 现在要将两个合并成一个 并且去除相同代码 祥看补充
你 看 看 这 个 ,是不是符合你的要求
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class TestOne {
/**
* @param args
*/
public static void main(String[] args) {
String filepath1 = "F:\\1.txt";
String filepath2 = "F:\\2.txt";
ListString res1txt = null;
ListString res2txt = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//输入连续的个数
System.out.print("Input series string size:");
try {
int temp = Integer.parseInt(br.readLine());
res1txt = readFile(filepath1, temp);
res2txt = readFile(filepath2, temp);
//比较两个list中的相同值
for (int i = 0; i res1txt.size(); i++) {
for (int j = 0; j res2txt.size(); j++) {
if(res1txt.get(i).equals(res2txt.get(j))){
System.out.println(res1txt.get(i));
}
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(br != null)
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 读取文件,把结果以输入的连续个数分割,并保存在List中
* @param filepath
* @param size
* @return
*/
public static ListString readFile(String filepath, int size){
//如果size不合法,则返回空
if(size = 0)
return null;
ListString list = new ArrayListString();
BufferedReader br = null;
try {
//读文件
br = new BufferedReader(new InputStreamReader(new FileInputStream(filepath)));
String temp = null;
while((temp = br.readLine()) != null){
for (int i = 0; i temp.length() - size; i++) {
list.add(temp.substring(i, i+size));
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(br != null)
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return list;
}
}
这里发不了代码,只能以文本的形式了
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class TestOne {
/**
* @param args
*/
public static void main(String[] args) {
String filepath1 = "F:\\1.txt";
String filepath2 = "F:\\2.txt";
ListString res1txt = null;
ListString res2txt = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//输入连续的个数
System.out.print("Input series string size:");
try {
int temp = Integer.parseInt(br.readLine());
res1txt = readFile(filepath1, temp);
res2txt = readFile(filepath2, temp);
//比较两个list中的相同值
for (int i = 0; i res1txt.size(); i++) {
for (int j = 0; j res2txt.size(); j++) {
if(res1txt.get(i).equals(res2txt.get(j))){
System.out.println(res1txt.get(i));
}
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(br != null)
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 读取文件,把结果以输入的连续个数分割,并保存在List中
* @param filepath
* @param size
* @return
*/
public static ListString readFile(String filepath, int size){
//如果size不合法,则返回空
if(size = 0)
return null;
ListString list = new ArrayListString();
BufferedReader br = null;
try {
//读文件
br = new BufferedReader(new InputStreamReader(new FileInputStream(filepath)));
String temp = null;
while((temp = br.readLine()) != null){
for (int i = 0; i temp.length() - size; i++) {
list.add(temp.substring(i, i+size));
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(br != null)
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return list;
}
}
相关问答
Q1: 如何用java程序提取两个文本中相同的字符串
java抽取相同代码你java抽取相同代码的意思是不是从两个txt中提取出相同的字符串java抽取相同代码?看看下面代码java抽取相同代码:从当前工作目录下有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 HashSetString sameSubString(String s1,String s2){
ArrayListString sub1 = new ArrayListString();//保存s1的子串
ArrayListString sub2 = new ArrayListString();//保存s2的子串
HashSetString result = new HashSetString();//保存相同的子串
//求s1的子串
for(int i = 1;is1.length();i++){
for(int j = 0;j=s1.length()-i;j++){
sub1.add(s1.substring(j,j+i));
}
}
//求s2的子串
for(int i = 1;is2.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);
HashSetString result=Test.sameSubString(s1, s2);
System.out.println("相同的子串 : " + result);
}
}
有什么疑问hijava抽取相同代码我或追问。
Q2: java 什么是把方法抽取出来
就是重构-抽取方法java抽取相同代码,简单来说就是把部分相关代码抽取出来成为一个方法java抽取相同代码,原来代码java抽取相同代码的位置改由调用该方法来代替。
如果你使用如Eclipse这种IDE,你可以通过选择要抽取的代码,鼠标右键选择重构-抽取方法,按照步骤给方法命名,确认,IDE就会帮你自动地把代码抽取出来形成一个私有的方法,原来的位置就会被调用这个方法的代码代替。
虽然操作步骤很简单,也就是把代码换个位置写,但实际隐含着程序设计的合理性和细粒度的考虑java抽取相同代码:
很明显你的代码里有超长的方法,一般方法会控制在10行以内,超过10行就可以认为有代码是可以提取出来成为公用方法的。超长的方法常常意味着高耦合、低内聚,重用性差和该类的职责太多。举个例子java抽取相同代码:
你的Servlet方法可能干了很多响应用户的操作,但有可能Servlet的另一个方法需要做其中一部分相同的操作,或者另外一个Servlet(一个Web应用有多个Servlet很正常)也需要同样的操作,更甚是一个本地的控制台应用程序(Servlet是属于会话层的,桌面应用程序一般不需要会话层)也需要做同样操作。这时候你会发现写在你的Servlet的代码只能拷贝到另一个程序中,或者压根就得重写,效率很低而且这样你的代码里会有很多重复代码...以后改一下就得改3个地方,不可维护的代码就是这样来的。同时你的超长方法也是难以理解的。
如何把握好程序的合理性需要很多的经验和设计技巧,这里就不提及了。有兴趣可以向着面向对象程序设计这个方向钻研。
Q3: JAVA代码怎么高效地在一个大数组中(千万级的)查找出两个相同的元素(只有两个相同)
不做遍历你怎么知道数组里面有什么?
高效java抽取相同代码的方法是需要耗费内存作为代价的。
比如你可以开一个大数组,遍历一次就可以java抽取相同代码了
Q4: 求bat(批处理)代码、或者java代码提取两个txt文本相同字符串(它们长度相同)保存于另一文本
同一文件中没重复的吧?写个批处理试试,(放两原文件a.txt b.txt同位置运行生成c.txt)
@echo offcd/d "%~dp0"
echo 请等候...
for /f "usebackq delims=" %%i in ("a.txt")do (
for %%j in (%%i)do set %%j=yes)
for /f "usebackq delims=" %%i in ("b.txt")do (
for %%j in (%%i)do if defined %%j echo %%j"c.txt")
set/p=处理完成,正在退出... nul
ping /n 3 127.1nul
Q5: java时间如何获取值和选中值一样代码?
你好,很高兴回答你的问题。
你的问题可以通过equals方法比较两个对象是否值相等。
或者通过compareTo方法进行比较,如果结果是0,表示两个时间对象表示的是同一时间点。
如果有帮助到你,请点击采纳。
java抽取相同代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java抽取方法、java抽取相同代码的信息别忘了在本站进行查找喔。







