所以,我正在开发一个代码美化器,我需要一些帮助。
如果有一个左括号{
,我希望之后的每一行在它们前面有4个空格,直到结束括号}
。我已经设法使用string.Replace("{", "{" + Environment.NewLine + " ")
完成了该行,但这还不够。
另外,我如何处理分号;
,因为有时它们后面有空格,有时候没有空格。我可以这样做:string.Replace(";", ";" + Environment.NewLine
,但是当分号后面有空格时,空格会移到第二行,所以它看起来很糟糕,我可以查看;
和; *space*
和替换两者,但如果有空格则会创建一个空行。
感谢您的帮助,如果我的解释可以理解,请发信,但我希望您知道我的意思:D
答案 0 :(得分:1)
您将需要一个嵌套计数器,因此您将在开头引入4个空格,与嵌套计数器中指示的次数一样多。
每次找到角色时都应该增加计数器' {'当你找到'}时减少它。此外,我确保这些弧形括号不会被引号括起来,因此它们是实际代码,并且它们不属于某些字符串。
关于分号,您应该尝试:
Regex regex = new Regex(";\\s*");
regex.Replace(string, ";" + Environment.NewLine);
答案 1 :(得分:1)
关于第一个问题,请尝试以下方法:
while(!lines[i].Contains("}")) {
lines[i].Insert(0," ");
i++;
}
如果你想处理多个花括号,你可以这样做:
int level;
for(int i = 0; i < lines.Length; i++) {
if(lines[i].Contains("{") level++;
if(lines[i].Contains("}") level--;
for(int j = 0; j < level; j++) lines[i].Insert(0, " ");
}
对于您的第二个问题,我认为这是您的运营顺序的问题。如果用分号+换行符替换分号,则会将空格带到下一行。如果你用分号+空格替换分号+换行符然后用分号替换分号+换行符你将有双行。你想要做的是用分号替换分号+空格(即删除所有空格),然后用分号替换分号+断行。
希望有所帮助
答案 2 :(得分:0)
;
并进行换行。