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

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

 

 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

 

你可能感兴趣的:(标签)