c# -添加到每个文本框行,直到一个特定的字符

本文关键字:一个 字符 添加 文本 | 更新日期: 2023-09-27 18:19:23

所以,我正在做一个代码美化器,我需要一些帮助。

当有一个左括号{时,我希望在它之后的每一行在它们前面有4个空格,直到右括号}。我已经设法为string.Replace("{", "{" + Environment.NewLine + " ")之后的行做了这件事,但这还不够。

另外,我如何处理分号;,因为有时它们后面有一个空格,有时没有。我可以这样做:string.Replace(";", ";" + Environment.NewLine,但是当分号后面有一个空格时,空格移动到第二行,所以看起来很糟糕,我可以检查;; *space*并替换它们,但是如果有空格,它会创建一个空行。

谢谢你的帮助,我想我的解释是否可以理解,但我希望你知道我的意思:D

c# -添加到每个文本框行,直到一个特定的字符

对于你的第一个问题,尝试这样做:

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);

  1. 查找所有;并换行。
  2. 删除所有尾随空格。
  3. 执行Pol建议的步骤