用空格替换注释的每个符号
Replace every symbol of comments by whitespace
我有一些 C# 代码文档。
需要用“空格”替换每个注释的每个符号。(需要对单行和多行注释都这样做)。
例如:
我有评论:
//12345
它必须替换为 7 个空格。
多行注释同理。执行此操作后,我需要具有相同符号数的文档。
@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);
};
但更优化。
(没有尝试此代码,但我相信它一定可以工作)。我认为,这是解决任务的糟糕方法...
您为什么不想使用正则表达式?像这样的东西似乎非常适合解决问题:
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();
}
我有一些 C# 代码文档。 需要用“空格”替换每个注释的每个符号。(需要对单行和多行注释都这样做)。
例如: 我有评论: //12345 它必须替换为 7 个空格。
多行注释同理。执行此操作后,我需要具有相同符号数的文档。
@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);
};
但更优化。 (没有尝试此代码,但我相信它一定可以工作)。我认为,这是解决任务的糟糕方法...
您为什么不想使用正则表达式?像这样的东西似乎非常适合解决问题:
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();
}