*根据指定项目目录下(可以认为是java源文件目录)中,统计被import最多的类。
2015-07-16 11:34
393 查看
尝试着向小黑哥学习,努力加特技。。
但是看起来还是好2B啊
但是看起来还是好2B啊
import java.util.HashMap; import java.util.Map; public class record { String[] allrecord; // Map<String, Integer> importNumMax=new Map<String, Integer>(); // HashMap importNumMax = new HashMap(); Map<String, Integer> importNumMax = new HashMap<String, Integer>(); public record() { // importNumMax.put(, value) } }
import java.io.*; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class test { String path = new String(); List<File> allFiles = new ArrayList<File>(); private static String CUSTOM_PATH = "./"; private static String STATIC_PROCESS_STRING = "import"; private static int INITIALIZE_NUM = 1; private static int IMPORT_MAXNUM = 1; private String maxImport = new String(); List<String> content = new ArrayList<String>(); String importNumMax = new String(); /** * @param args */ public test(String path) { this.path = path; } public test() { this.path = CUSTOM_PATH;//默认当前文件夹 } public void processContent(List<String> waitForProcessContent) { record myRecord = new record(); String[] record = StringListToArray(waitForProcessContent); // String regex=" (\b)*;"; Pattern p = Pattern.compile("(?<= ).*(?=;)"); for (int i = 0; i < record.length; i++) { if (record[i].contains(STATIC_PROCESS_STRING)) { // System.out.println(record[i]); Matcher m = p.matcher(record[i]); while (m.find()) { if (myRecord.importNumMax.get(m.group()) == null) { myRecord.importNumMax.put(m.group(), INITIALIZE_NUM); } else { int num = myRecord.importNumMax.get(m.group()) + 1; if (num > IMPORT_MAXNUM) { maxImport = m.group(); } myRecord.importNumMax.put(m.group(), num); } // int s=myRecord.importNumMax.get(m.group()); // myRecord.importNumMax.put((m.group(),importNumMax.hashCode()++); // System.out.println(m.group()); // System.out.println(myRecord.importNumMax.get(m.group())); } } } } public void 4000 processContent() { processContent(this.content); } public void getContentFromFile(File... files) throws Exception { File singleFile; for (int i = 0; i < files.length; i++) { singleFile = files[i]; getContentFromFile(singleFile); } } public void getContentFromFile(File file) throws Exception { InputStream in = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(in, "UTF-8"); BufferedReader br = new BufferedReader(isr); // List<String> filecontent =new ArrayList<String>(); String line = ""; while ((line = br.readLine()) != null) {// 从文本中读取文件 // filecontent.add(line); this.content.add(line); // System.out.print(line); // System.out.print("\r\n"); } if (br != null) { br.close(); } } public void getContentFromFile(List<File> listfiles) throws Exception { File singleFile; for (int i = 0; i < listfiles.size(); i++) { singleFile = listfiles.get(i); getContentFromFile(singleFile); } } public void getContentFromFile() throws Exception { // File []files=fileListToArray(this.allFiles); getContentFromFile(this.allFiles); } public File[] fileListToArray(List<File> listFiles) { // File[] aFiles=(File[])T.allFiles.toArray(new File[T.allFiles.size()]); File[] arrayFiles = new File[listFiles.size()]; for (int i = 0; i < listFiles.size(); i++) { arrayFiles[i] = listFiles.get(i); } return arrayFiles; } public String[] StringListToArray(List<String> listStings) { String[] arrayFiles = new String[listStings.size()]; for (int i = 0; i < listStings.size(); i++) { arrayFiles[i] = listStings.get(i); } return arrayFiles; } public void getFilesFromPath(String path) { File f = new File(path); File[] files = f.listFiles(); // List<File> listfiles=new ArrayList<File>(); for (int i = 0; i < files.length; i++) { if (!files[i].isDirectory()) { this.allFiles.add(files[i]); } else { getFilesFromPath(files[i].toString()); } // System.out.print(files[i]); // System.out.print("\n"); } } public void getFilesFromPath() { getFilesFromPath(this.path); } public static void main(String[] args) throws Exception { // TODO Auto-generated method stub test T = new test(); // String fileName="test.txt"; // String path = "d:/tr/rt"; // File f = new File(path); // File file = new File(f,fileName); T.getFilesFromPath(); // T.content=T.getContentFromFile(T.fileListToArray(T.allFiles)); T.getContentFromFile(); // for(int i=0;i<T.allFiles.size();i++){ // System.out.println(T.allFiles.get(i)); // } // for(int i=0;i<T.content.size();i++){ // System.out.println(T.content.get(i)); // } T.processContent(); System.out.print(T.maxImport); } }
相关文章推荐
- 告别乱码,针对GBK、UTF-8两种编码的智能URL解码器的java实现
- Java初学习 - enum(枚举)的一点说明
- 常用 Java Profiling 工具的分析与比较
- Java性能调优工具
- java基础面向对象与实例
- spring mvc的学习
- CSDN第一篇博客
- SpringMVC自定义日期格式进行参数绑定
- c#中泛型集合directory和java中map集合对比
- java 执行 jar包中的一个类
- Java实现基于桶式排序思想和计数排序思想实现的基数排序
- jldap实现Java对LDAP的基本操作
- eclipse+selenium+testNG+maven 学习二
- java 删除文件(删除空目录)
- Java中使用BASE64加密&解密
- 用Eclipse开发Java程序入门
- Spring 3.1 M1: Unified Property Management(转)
- Eclipse 编辑注释模板
- java for(int i:d)&nbs…
- JAVA中的接口和抽象类(转)