JAVA,将java文件中的单行和多行注释内容替换为空,正则表达式如何实现!
发布网友
发布时间:2022-04-29 19:50
我来回答
共4个回答
懂视网
时间:2022-04-30 00:11
我的需求是SQL文件中有成千的类似数据,我要将它们进行转换格式,如下图
第一步:将字符段楼替换,使用word排版
把数据拷贝到word中,使用特殊字符替换
点击全部替换,替换之后如下图,这时候它是一串很长的字符串
第二步:编写Java替换程序
在代码中num是分割段,到第16个字符时候换行
public class Demo {
public static void main(String[] args) {
String s = "'133','153','180','181','189','177','130','131','132','155','156','145','185','186','176','134','135','136','137','138','139','150','151','152','158','159','182','183','184','157','187','188','147','178','170'";
String str[] = s.split(",");
StringBuilder sb = new StringBuilder();
StringBuilder rs = new StringBuilder();
int num = 15; // 15是分割段
int yu = str.length % num;
int a = 0;
for (int i = 0; i < str.length; i++) {
a++;
sb.append(str[i] + ",");
if (a == num) {
a = 0;
rs.append(sb + "
");
sb = new StringBuilder();
}
}
sb = new StringBuilder();
for (int i = yu; i > 0; i--) {
sb.append(str[str.length - i] + ",");
}
rs.append(sb);
System.out.println(rs.substring(0, rs.length() - 1));
System.out.println("
" + str.length + " : " + (rs.toString().split(",").length));
}
}
运行之后如下图
第三步:将输出的字符替换SQL字符即可
比如下面效果
Java批量将文件中的段落替换成空格,根据指定分隔符换行(SQL示例)
标签:字符替换
热心网友
时间:2022-04-29 21:19
我们知道java中有三种注释方式
1. // 单行
2. /* .......*/ 单行 或多行
3. /** .......*/ 单行 或多行
我们的目的就是把以上三种特征的注释替换
以下是例子
String s = “。。。。。。。。”; // 将文件的内容赋值给s
Pattern pattern1 = Pattern.compile("//(.*)"); //特征是所有以双斜线开头的
Matcher matcher1 = pattern1.matcher(s);
s = matcher1.replaceAll(""); //替换第一种注释
Pattern pattern2 = Pattern.compile("/\\*(.*?)\\*/", Pattern.DOTALL); //特征是以/*开始,以*/结尾,Pattern.DOTALL的意思是糊涂模式,这种模式下.(点号)匹配所有字符
Matcher matcher2 = pattern2.matcher(s);
s = matcher2.replaceAll(""); //替换第二种注释
Pattern pattern3 = Pattern.compile("/\\*\\*(.*?)\\*/", Pattern.DOTALL); //特征是以/**开始,以*/结尾
Matcher matcher3 = pattern3.matcher(s);
s = matcher3.replaceAll(""); //替换第三种注释
System.out.println(s); //打印结果
热心网友
时间:2022-04-29 22:37
这种东东写起来还真头疼~~~还以为不行(不足的是还没考虑到代码里要是有什么变量包含了 // /* */之类的符号的话..会转换错了..)
public static void main(String[] args) throws Exception
{
FileInputStream fis=new FileInputStream("E:\\workspace\\bus_mod\\src\\test\\Unique.java");
int len=0;
byte[] b=new byte[190];
String res="";
while((len=fis.read(b))!=-1){
res+=new String(b,0,len);
}
fis.close();
res=res.replaceAll("(/[*]|[*]/)", "______________"); //替换整段注释的符号,*号本身比较不好处理
res=res.replaceAll("\r\n", "\n"); //替换回车换行,统一处理..需要可以再换回去
res=res.replaceAll("(//)(.*)(\n)", "\n");//把单行注释替换为空
res=res.replaceAll("\n", "@@@@@@@@@@@@@@@"); //先把换行符替换掉,和*号一样,特殊字符不好处理,先替换
res=res.replaceAll("(______________)((.)*?)(______________)", ""); //多行的注释替换为空
res=res.replaceAll("@@@@@@@@@@@@@@@", "\n"); //换回换行符
res=res.replaceAll("(\t|\b|\f|\t)*\n", "\n"); //去掉空行里的空字符,制表符,空格等
res=res.replaceAll("\n{2,}", "\n"); //去掉空行
System.out.println(res);
}
热心网友
时间:2022-04-30 00:12
这个不会