我现在把一个java文件转成一个string,除去comment.
现在要把不是关键词的if换成2个空格,也就是" ",我有个方法判断if是不是关键词,但是怎么换呢?
比如一个String str = "string a = \"if \"; if (a == b)"; 换成 "string a = \" \"; if (a==b)"
谢谢大家。
现在要把不是关键词的if换成2个空格,也就是" ",我有个方法判断if是不是关键词,但是怎么换呢?
比如一个String str = "string a = \"if \"; if (a == b)"; 换成 "string a = \" \"; if (a==b)"
谢谢大家。
if(a == b)/**
* if(a == b)
*/
if(a == b)/**
if(a == b)
*/
if(a == b)更变态一点的if(a == b) /*
if(a == b)
*/
replace
replaceall
substring
split
結合起來用。
說實在的
我認為你手動比較快。。
str = str.replaceAll("([^\"]*?)if(?=[^\"]*\"\s*[;+])", "$1 ");JavaScript 的测试过的
<script>
var a = "string a = \"if afda if adsf\"; if (a == b); string a = \"adsf if a if adsf\";";
var r = /([^"]*?)if(?=[^"]*"\s*[;+])/g;
alert(a.replace(r, "$1 ") + "\n" + a);
</script>这种只能处理
String str = "string a = \"if afda if adsf\"; if (a == b); string a = \"adsf if a if adsf\";";
这种样子的如果是
String str = "string a = \"if afda \\\"if\\\" adsf\"; if (a == b);";这种形式的就比较讨厌了,再想想看哈~
接下来就好办了
String str = "string a = \"if \"; if (a == b)";
StringBuffer StrBuf=new StringBuffer(str);
int startIndex;//非关键字if的开始索引
while()//循环条件你自己加上
{
//你的方法:判断if是不是关键词,这里你的得到了非关键字if的开始索引StrBuf.replace(startIndex,startIndex+2," ");
}
大家有没有好的办法呢