问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

这个不会
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑上制作相册时转换源文件用电脑如何制作相册视频 二十四节气立秋的特点 立秋的来历和风俗-今日头条 立秋这个节气的特点 立秋节气的特点和由来-今日头条 怎么设置电脑键盘灯光笔记本怎么开键盘背光 苹果电脑win10键盘灯怎么开 苹果电脑win10键盘灯打开方法 为什么我电脑CPU 什么都不运行温度还100以上? 麻烦大家看看我的cpu温度不稳定 电脑cpu热怎么解决电脑cpu过热要怎么解决 电脑cpu温度高怎么解决办法 船用螺旋桨厂家 七叶莲是不是只有七片叶子?多一片或少一片就不是七叶莲? 腾讯科技短信回复T退订后怎么恢复接收? 谁家有盆景七叶莲花照几张图片看看什么样的? 福建少儿什么时候播虹猫蓝兔光明剑? 赤峰蓝海洋影视文化传媒有限公司怎么样? 飞轮海的行程表 赤峰三和影视传媒有限公司怎么样? 广州影视频道的那个娱乐节目叫什么名字 宽带电视有影视娱乐频道吗? 苗能加什么偏旁 赤峰万达电影城有限公司怎么样? 赤峰广播电视台怎么样? Microsoft PowerPoint 97-2003 怎么一张一张设置背景 求视频:淮安电视台三套影视娱乐频道重播2013年4月13日8时10分的节目网址 广西影视频道节目怎样回放 禾苗的“苗”组词有哪些? 虹猫蓝兔光明剑 内蒙古赤峰有很多著名女明星,其中都有哪些? 苗字组词有哪些词语 2003版幻灯片背景图片怎么设置 七叶莲叶子发黑、掉叶怎么办? 退订了腾讯科技消息怎么恢复 腾讯科技发的限号提醒信息怎么解除 七叶莲图片 七叶莲的图片 谁知道这个腾讯科技短信怎么删除,客服电话不管用 那么贵的七叶一枝花是什么,为什么很少有人种植? 欲善其事,必先利其器,做烘培要备好哪些工具? 烘焙工具什么牌子好 做西式甜点的工具有哪些? 电脑开机密码是文字怎么输入 电脑密码汉字怎么输入 电脑开机输入密码时,怎么输入中文 电脑密码怎么输入文字 电脑上的密码怎样打字 windows10开机输入密码界面,怎么输入文字开机密码? 电脑登录密码zhang@981388字怎样打上去? 电脑密码怎么输入汉字 密码输入是文字,要怎样才能输文字 电脑登录密码如何打文字