简陋的自动加网页标签程序

这次做学习黄页 很多号码 手打太蛋疼 所以写了个小程序 很简陋 应用范围局限 记录留档以备日后完善

 1 import java.io.BufferedReader;
 2 import java.io.BufferedWriter;
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.FileOutputStream;
 6 import java.io.FileReader;
 7 import java.io.FileWriter;
 8 import java.io.IOException;
 9 
10 import javax.print.DocFlavor.CHAR_ARRAY;
11 
12 
13 public class Main {
14     public static void main(String []args){
15         try{
16             String filer="F:/html/numbers.txt",filew="F:/html/result.txt";
17             String line,reline = null,ch="<td>",pch="</td>",space="<td>&nbsp&nbsp&nbsp</td>";
18             String pass="<tr>",ppass="</tr>";
19 
20             
21             File rf=new File(filer);
22             File wf=new File(filew);
23             BufferedReader br = new BufferedReader(new FileReader(filer));
24             BufferedWriter bw=new BufferedWriter(new FileWriter(filew));
25         
26             //int count=0;
27 
28             while((line=br.readLine())!=null){
29                 char[] tem=line.toCharArray();
30                 for(int i=0;i<line.length();i++){
31                     if(tem[i]=='8'){
32                         String strtem=reline;
33                 
34                         if(reline!=null){
35                             reline=ch;
36                             reline+=strtem;
37                             reline+=pch;
38                             bw.write(reline);
39                             bw.newLine();
40                         }
41                             
42                         reline=ch;
43                         reline+=line.substring(i);
44                         reline+=pch;
45                         i+=8;
46                         bw.write(reline);
47                         bw.newLine();
48                         reline=null;
49 
50                     }
51                     else{
52                         if(reline==null)
53                             reline=String.valueOf(tem[i]);
54                         else
55                             reline+=tem[i];
56                     }    
57                 }      
58               }
59                 bw.flush();
60                 bw.close();
61                 br.close();
62             } catch (IOException e) { 
63                 e.printStackTrace();
64             }
65     }
66 }

因为源文件中的号码都是以8开头的8位数字 所以判断条件是那样的

部分源文件:

  教学办公室 85290783
  教务办公室 85290787
  学生事务办公室 85290081
  外事工作办公室 85290781
  外教办公室 85290080
  项目办公室 85290786
  语音实验室 85290776
  计算机实验室 85290779
  院长办公室 85290032
  党委书记办公室 85290559
  副院长办公室 85290031

运行结果: 

  <td> 教学办公室 </td>
  <td>85290783</td>
  <td> 教务办公室 </td>
  <td>85290787</td>
  <td> 学生事务办公室 </td>
  <td>85290081</td>
  <td> 外事工作办公室 </td>
  <td>85290781</td>
  <td> 外教办公室 </td>
  <td>85290080</td>
  <td> 项目办公室 </td>
  <td>85290786</td>
  <td> 语音实验室 </td>
  <td>85290776</td>
  <td> 计算机实验室 </td>
  <td>85290779</td>
  <td> 院长办公室 </td>
  <td>85290032</td>
  <td> 党委书记办公室 </td>
  <td>85290559</td>
  <td> 副院长办公室 </td>
  <td>85290031</td>

完善思路:加计数器以实现两组(中文名+号码)编一<tr>

     每组之间+space 分隔

       不排斥一个办公室+多个号码的组合

——————————————————————————————————————————————————————————————————————

更新15-4-21

改进了多号码分割,但首尾要手动改正。

 1 import java.io.BufferedReader;
 2 import java.io.BufferedWriter;
 3 import java.io.File;
 4 import java.io.FileReader;
 5 import java.io.FileWriter;
 6 import java.io.IOException;
 7 
 8 
 9 public class test {
10     public static void main(String []args){
11         try{
12             String filer="F:/html/numbers.txt",filew="F:/html/result.txt";
13             String line,ch="<td>",pch="</td>";
14             String pass="<tr>",ppass="</tr>";
15 
16             
17             File rf=new File(filer);
18             File wf=new File(filew);
19             BufferedReader br = new BufferedReader(new FileReader(filer));
20             BufferedWriter bw=new BufferedWriter(new FileWriter(filew));
21             
22             //split by words
23             while((line=br.readLine())!=null){
24                 char[] a=line.toCharArray();
25                 String reline=pch+ch;
26                 boolean check=false;
27                 for(int i=0;i<line.length();i++){
28                     if(!(a[i]>='0'&&a[i]<='9')&&a[i]!=' '){
29                         reline+=a[i];
30                         check=true;
31                         
32                     }
33                     if((a[i]>='0'&&a[i]<='9')){
34                         if(!check) {reline="/";reline+=line.substring(i);}
35                         else reline+=pch+ch+line.substring(i);
36                         i+=8;
37                     }
38                 }
39                 //System.out.println(reline);
40                 bw.write(reline);
41                 bw.newLine();
42             }
43             bw.flush();
44             bw.close();
45             br.close();
46         }catch (IOException e) { 
47             e.printStackTrace();
48         }
49     }
50     
51 }
View Code
原文地址:https://www.cnblogs.com/verlen11/p/4427297.html