c# -添加到每个文本框行,直到一个特定的字符
本文关键字:一个 字符 添加 文本 | 更新日期: 2023-09-27 18:19:23
所以,我正在做一个代码美化器,我需要一些帮助。
当有一个左括号{
时,我希望在它之后的每一行在它们前面有4个空格,直到右括号}
。我已经设法为string.Replace("{", "{" + Environment.NewLine + " ")
之后的行做了这件事,但这还不够。
另外,我如何处理分号;
,因为有时它们后面有一个空格,有时没有。我可以这样做:string.Replace(";", ";" + Environment.NewLine
,但是当分号后面有一个空格时,空格移动到第二行,所以看起来很糟糕,我可以检查;
和; *space*
并替换它们,但是如果有空格,它会创建一个空行。
谢谢你的帮助,我想我的解释是否可以理解,但我希望你知道我的意思:D
对于你的第一个问题,尝试这样做:
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, " ");
}
关于你的第二个问题,我认为是你的操作顺序有问题。如果您将分号单独替换为分号+换行符,您将把空格转移到下一行。如果您将分号+空格替换为分号+换行符,然后将分号+换行符替换为分号+换行符,您将得到双行。您要做的是将分号替换为分号+空格(即删除所有空格),然后将分号替换为分号+断行。
希望有所帮助
您将需要一个嵌套计数器,因此您将在嵌套计数器中指示的次数开始引入4个空格。
你应该在每次找到字符"{"时增加计数器,在找到字符"}"时减少计数器。此外,我要确保那些弯曲的括号没有被引号包围,所以它们是实际的代码,它们不属于某个字符串。
关于分号,你应该试试:Regex regex = new Regex(";''s*");
regex.Replace(string, ";" + Environment.NewLine);
- 查找所有
;
并换行。 - 删除所有尾随空格。
- 执行Pol建议的步骤