我有一些C#代码文档。 需要用“空格”替换每个注释的每个符号。(需要使用单行和多行注释来执行此操作)。
例如: 我有评论: // 12345 它必须被替换为7个空格。
与多行评论相同。执行此操作后,我需要具有相同符号计数的文档。
答案 0 :(得分:0)
为什么你不想使用正则表达式?像这样的东西似乎非常适合解决问题:
public static string ReplaceComments(string input)
{
return Regex.Replace(input, @"(/\*[\w\W]*\*/)|//(.*?)\r?\n",
s => GenerateWhitespace(s.ToString()));
}
public static string GenerateWhitespace(string input)
{
var builder = new StringBuilder();
builder.Append(' ', input.Length);
return builder.ToString();
}
答案 1 :(得分:0)
@RagtimeWilly,我想要这样的事情:
string testsDocumentTemp = testsDocument;
while (DocumentTemp.Contains("/*"))
{
int CutFromPosition = DocumentTemp.IndexOf("/*", 0);
int CutToPosition = DocumentTemp.IndexOf("*/", CutFromPosition) - CutFromPosition;
string s = testsDocumentTemp.Substring(CutFromPosition, CutToPosition);
var builder = new StringBuilder();
builder.Append(' ', s.Length);
var result = builder.ToString();
DocumentTemp = DocumentTemp.Replace(s, result);
};
while (DocumentTemp.Contains("////"))
{
int CutFromPosition = DocumentTemp.IndexOf("////", 0);
int CutToPosition = DocumentTemp.IndexOf("\n", CutFromPosition) - CutFromPosition;
string s = testsDocumentTemp.Substring(CutFromPosition, CutToPosition);
var builder = new StringBuilder();
builder.Append(' ', s.Length);
var result = builder.ToString();
DocumentTemp = DocumentTemp.Replace(s, result);
};
但更优化。 (没有尝试过此代码,但我相信它必须有效)。我相信,这是解决任务的坏方法......