网页复制代码去行标

在CSDN或者ITEYE等网站上,如果直接复制代码,复制的代码中可能有多余的行标。 

例如: 
Java代码   收藏代码
  1. 1.public class MyThread implements Runnable {     
  2.     2.    public void run() {     
  3.     3.        for(int i=0; i<10; i++){     
  4.     4.            System.out.println(Thread.currentThread().getName()+":"+i);     
  5.     5.        }     
  6.     6.    }     
  7.     7.}     
  8.     8.public class MyThreadClient {     
  9.     9.    public static void main(String[] args){     
  10.     10.        Thread t = new Thread(new MyThread());     
  11.     11.        t.start();     
  12.     12.        for(int i=0; i<10; i++){     
  13.     13.            System.out.println(Thread.currentThread().getName()+":"+i);     
  14.     14.            Thread.yield();     
  15.     15.        }     
  16.     16.    }     
  17.     17.}    


本文就是简单实现一个小程序,目的就是去除这些多余的行标信息。 

行标的特点空格或者TAB数字点号 

根据这个特点,写一个适合这种情况的正则表达式==>  ^*\\d{1,}+\\. 

此正则表达式只适合上面描述的行标,如果复制的代码拥有的行标特点不一样,则需要调整正则表达式。 

小程序代码如下: 

一个简单的文件过滤器类,主要用于过滤到没有内容的空文件。 

Java代码   收藏代码
  1. package my.tool.file.convertor;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileFilter;  
  5. import java.io.FileInputStream;  
  6. import java.io.FileNotFoundException;  
  7. import java.io.IOException;  
  8.   
  9. /** 
  10.  *  
  11.  * 一个简单的文件过滤器,主要用于过滤到没有内容的空文件。 
  12.  *  
  13.  * @author Eric 
  14.  * 
  15.  */  
  16. public class EmptyFileFilter implements FileFilter {  
  17.   
  18.     public boolean accept(File pathname) {  
  19.         return !isFileEmpty(pathname);  
  20.     }  
  21.   
  22.     private boolean isFileEmpty(File file) {  
  23.         FileInputStream fis = null;  
  24.         boolean flag = true;  
  25.         try {  
  26.             fis = new FileInputStream(file);  
  27.             try {  
  28.                 if (fis.available() != 0) {  
  29.                     flag = false;  
  30.                 }  
  31.             } catch (IOException e) {  
  32.                 // TODO Auto-generated catch block  
  33.                 e.printStackTrace();  
  34.             }  
  35.         } catch (FileNotFoundException e) {  
  36.             // TODO Auto-generated catch block  
  37.             e.printStackTrace();  
  38.         } finally {  
  39.             if (null != fis) {  
  40.                 try {  
  41.                     fis.close();  
  42.                 } catch (IOException e) {  
  43.                     // TODO Auto-generated catch block  
  44.                     e.printStackTrace();  
  45.                 } finally {  
  46.                     fis = null;  
  47.                 }  
  48.             }  
  49.         }  
  50.   
  51.         return flag;  
  52.     }  
  53.   
  54. }  


一个用于去除行标的类 

Java代码   收藏代码
  1. package my.tool.file.convertor;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.BufferedWriter;  
  5. import java.io.File;  
  6. import java.io.FileNotFoundException;  
  7. import java.io.FileReader;  
  8. import java.io.FileWriter;  
  9. import java.io.IOException;  
  10.   
  11. public class FileConvertor {  
  12.   
  13.     private static final String REGEX_LINE_NUMBER = "^*\\d{1,}+\\.";  
  14.   
  15.     public void convert(String srcFolder, String destFolder) {  
  16.         for (File file : new File(srcFolder).listFiles(new EmptyFileFilter())) {  
  17.             convertFile(file, destFolder);  
  18.             System.out.println(file.getName() + " is converted.");  
  19.         }  
  20.     }  
  21.   
  22.     private void convertFile(File file, String destFolder) {  
  23.         BufferedReader br = null;  
  24.         BufferedWriter bw = null;  
  25.         try {  
  26.             br = new BufferedReader(new FileReader(file));  
  27.             bw = new BufferedWriter(new FileWriter(new File(destFolder, file  
  28.                     .getName())));  
  29.             String line = null;  
  30.             while (null != (line = br.readLine())) {  
  31.                 bw.write(removeLineNumber(line));  
  32.                 bw.newLine();  
  33.             }  
  34.         } catch (FileNotFoundException e) {  
  35.             // TODO Auto-generated catch block  
  36.             e.printStackTrace();  
  37.         } catch (IOException e) {  
  38.             // TODO Auto-generated catch block  
  39.             e.printStackTrace();  
  40.         } finally {  
  41.             if (br != null) {  
  42.                 try {  
  43.                     br.close();  
  44.                 } catch (IOException e) {  
  45.                     // TODO Auto-generated catch block  
  46.                     e.printStackTrace();  
  47.                 } finally {  
  48.                     br = null;  
  49.                 }  
  50.             }  
  51.   
  52.             if (null != bw) {  
  53.                 try {  
  54.                     bw.close();  
  55.                 } catch (IOException e) {  
  56.                     // TODO Auto-generated catch block  
  57.                     e.printStackTrace();  
  58.                 } finally {  
  59.                     bw = null;  
  60.                 }  
  61.             }  
  62.         }  
  63.     }  
  64.   
  65.     private String removeLineNumber(String value) {  
  66.         value = value.replaceAll(REGEX_LINE_NUMBER, "");  
  67.         return value;  
  68.     }  
  69. }  


测试代码: 
Java代码   收藏代码
  1. package my.tool.file.convertor;  
  2.   
  3. public class Main {  
  4.   
  5.     private static final String DESTINATION_FOLDER = "D:\\DestFolder";  
  6.   
  7.     private static final String SOURCE_FOLDER = "D:\\SrcFolder";  
  8.   
  9.     public static void main(String[] args) {  
  10.   
  11.         System.out.println("Source Folder ==> " + SOURCE_FOLDER);  
  12.         System.out.println("Destination Folder ==> " + DESTINATION_FOLDER);  
  13.         System.out.println("Convert Files start.......");  
  14.   
  15.         long start = System.currentTimeMillis();  
  16.   
  17.         new FileConvertor().convert(SOURCE_FOLDER, DESTINATION_FOLDER);  
  18.   
  19.         long end = System.currentTimeMillis();  
  20.   
  21.         System.out.println("Convert Files end.......");  
  22.         System.out.println("Total elapsed time ==> " + (end - start)  
  23.                 + "ms");  
  24.     }  
  25. }  


控制台输出结果如下: 
Source Folder ==> D:\SrcFolder 
Destination Folder ==> D:\DestFolder 
Convert Files start....... 
MyTest.java is converted. 
MyThread.java is converted. 
test.txt is converted. 
Convert Files end....... 
Total elapsed time ==> 37ms 

处理前和处理后的文件内容截图如下: 
处理前 



处理后 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值