CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

如何用Java程序删除sql脚本中的注释

楼主chn217(天涯)2005-01-19 17:55:12 在 Java / J2SE / 基础类 提问

谢谢 问题点数:50、回复次数:7Top

1 楼treeroot(旗鲁特)回复于 2005-01-19 18:29:52 得分 10

String   s="select   *   from   table   --comment\n   insert   into   --comment";  
  String   ss=s.replaceAll("--.+[\n]?","\n");Top

2 楼TinyJimmy(Jimmy)回复于 2005-01-19 19:53:22 得分 10

扫面文件,   如果以--开始,   删除从开始位置到改行结束的内容Top

3 楼chn217(天涯)回复于 2005-01-20 09:29:07 得分 0

那/**/中的注释如何删除?Top

4 楼chn217(天涯)回复于 2005-01-20 09:29:25 得分 0

各位帮帮忙啊Top

5 楼treeroot(旗鲁特)回复于 2005-01-20 09:41:06 得分 30

s=s.replaceAll("/\\*.+?\\*/","");Top

6 楼chn217(天涯)回复于 2005-01-20 09:43:43 得分 0

楼上写的无法匹配多行的注释  
  比如:  
  /*sssfasdf  
  sss  
  */  
  因为.不能匹配\r\nTop

7 楼chn217(天涯)回复于 2005-01-20 12:22:40 得分 0

import   java.io.BufferedReader;  
  import   java.io.BufferedWriter;  
  import   java.io.FileInputStream;  
  import   java.io.FileOutputStream;  
  import   java.io.IOException;  
  import   java.io.InputStreamReader;  
  import   java.io.OutputStreamWriter;  
   
  /**  
    *   @author   fisher  
    *  
    *   <pre>  
    *    
    *   Title:   SQLCommentFilter.java  
    *      
    *   Description:   删除SQL脚本中的注释  
    *    
    *   </pre>  
    */  
   
  public   class   CommentFilter   {  
   
  private   boolean   inMultiLineComment   =   false;  
   
  /**  
    *   Filter   out   multiLine   comments.    
    */  
  private   String   multiLineCommentFilter(String   line)   {  
  StringBuffer   buf   =   new   StringBuffer();  
  int   index;  
  if   (inMultiLineComment   &&   (index   =   line.indexOf("*/"))   >   -1)   {  
  inMultiLineComment   =   false;  
  if   (line.length()   >   index   +   2)   {  
  buf.append(inlineCommentFilter(line.substring(index   +   2)));  
  }  
  return   buf.toString();  
  }   else   if   (inMultiLineComment)   {  
  return   "";  
  }   else   if   ((index   =   line.indexOf("/*"))   >   -1)   {  
  inMultiLineComment   =   true;  
  buf.append(inlineCommentFilter(line.substring(0,   index)));  
  return   buf.toString();  
  }   else   {  
  return   inlineCommentFilter(line);  
  }  
  }  
   
  /**  
    *   Filter   inline   comments    
    */  
  private   String   inlineCommentFilter(String   line)   {  
  if   (line   ==   null   ||   line.equals(""))   {  
  return   "";  
  }  
  return   line.replaceAll("--.*",   "");  
  }  
   
  private   static   void   printUsage()   {  
  System.out.println("Usage:java   CommentFilter   src_shell_file   dest_shell_file");  
  }  
   
  public   static   void   main(String[]   args)   throws   IOException   {  
  if   (args.length   !=   2)   {  
  printUsage();  
  System.exit(-1);  
  }  
   
  CommentFilter   cf   =   new   CommentFilter();  
   
  BufferedReader   reader   =   new   BufferedReader(  
                                          new   InputStreamReader(  
                                                  new   FileInputStream(args[0])));  
   
  BufferedWriter   writer   =   new   BufferedWriter(  
                                          new   OutputStreamWriter(  
                                                  new   FileOutputStream(args[1])));  
   
  String   line   =   null;  
  while   ((line   =   reader.readLine())   !=   null)   {  
  String   filterLine   =   cf.multiLineCommentFilter(line);  
  if   (filterLine.trim().equals(""))  
  continue;  
  writer.write(filterLine);  
  writer.newLine();  
  }  
  }  
  }Top

相关问题

  • 能不能在查询的sql脚本中加注释?
  • SQL脚本
  • 求SQL脚本
  • asp脚本求注释,散分
  • 关于sql脚本!
  • 请问java中怎么执行一个 sql 脚本文件
  • 请问java中怎么执行一个 sql 脚本文件
  • java脚本加asp
  • SQL脚本颁布问题
  • SQL Sever脚本的展开?

关键词

  • inmultilinecomment
  • inlinecommentfilter
  • 注释
  • 删除
  • replaceall
  • line
  • io
  • buf
  • comments
  • import

得分解答快速导航

  • 帖主:chn217
  • treeroot
  • TinyJimmy
  • treeroot

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo