Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1601625
  • 博文数量: 43
  • 博客积分: 169
  • 博客等级: 入伍新兵
  • 技术积分: 1162
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-08 15:35
文章分类

全部博文(43)

文章存档

2021年(1)

2019年(4)

2016年(6)

2015年(8)

2013年(19)

2012年(5)

分类: Java

2013-04-07 20:57:16

输出java源文件所有普通字符串


    

点击(此处)折叠或打开

  1. package com.cn.fanjg.regex;

  2. import java.io.BufferedReader;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileReader;
  5. import java.io.IOException;
  6. import java.util.regex.Matcher;
  7. import java.util.regex.Pattern;

  8. /**
  9.  * @function:
  10.  * com.cn.fanjg.regex
  11.  * @author fanjg
  12.  * @date : 2013-4-7 下午08:43:21
  13.  */
  14. public class PrintCommonString {
  15.     public static void main(String[] args) {
  16.         try {
  17.             FileReader freader = new FileReader("./ThreadMain.java");
  18.             BufferedReader breader = new BufferedReader(freader);
  19.             StringBuilder sb = new StringBuilder();
  20.             try {
  21.                 String temp = "";
  22.                 /**
  23.                  * 读取文件内容,并将读取的每一行后都不加\n
  24.                  * 其目的是为了在解析双反斜杠(//)注释时做注释中止符
  25.                  */
  26.                 while((temp=breader.readLine())!= null)
  27.                 {
  28.                     sb.append(temp);
  29.                     sb.append('\n');
  30.                 }
  31.                 String src = sb.toString();
  32.                 /** 匹配左引号 **/
  33.                 Matcher leftQuoteMatcher = Pattern.compile("\"").matcher(src);
  34.                 Matcher rightQuoteMatcher = Pattern.compile("\"").matcher(src);
  35.                 int begin = 0;
  36.                 sb = new StringBuilder();
  37.                 while(leftQuoteMatcher.find(begin))
  38.                 {
  39.                     //因为字符串的双引号是一样的 ,所以需要 在匹配右引号的开始位置为左引号位置+1
  40.                     rightQuoteMatcher.find(leftQuoteMatcher.start()+1);
  41.                     sb.append(src.substring(leftQuoteMatcher.start(), rightQuoteMatcher.end()));
  42.                     sb.append('\n');
  43.                     begin = rightQuoteMatcher.end();
  44.                 }
  45.                 System.out.println(sb.toString());
  46.             } catch (IOException e) {
  47.                 System.out.println("文件读取失败");
  48.             }finally
  49.             {
  50.                 breader.close();
  51.                 freader.close();
  52.             }
  53.         } catch (FileNotFoundException e) {
  54.             System.out.println("文件不存在");
  55.         }catch(IOException e)
  56.         {
  57.             System.out.println("文件读取失败");
  58.         }
  59.     }

  60. }


阅读(2500) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~