将输入字符串中的注释转换为大写

时间:2013-09-13 21:28:45

标签: c# substring uppercase

如何识别用户输入的注释字符串。假设用户输入了

> I am /*not working*/ right now.

所以我想将注释的子字符串> /* not working*/转换为大写。我怎么能在c#中做到这一点。转换不是问题。问题是如何识别评论?在if块中做什么??

   static void comment(string exp_string)
    {
        for (int i = 0; i < exp_string.Length; i++)
        {
            if (exp_string[i] == 47 && exp_string[i + 1] == 42)

        }

    }

2 个答案:

答案 0 :(得分:0)

如果您被限制使用像正则表达式一样干净的内容,请使用String.SubString()String.ToUpper()

我认为你被限制是愚蠢的,但有时别无选择。祝你好运。

编辑:要考虑的另一件事是使用IndexOf()。但是,我要在MSDN中找到

答案 1 :(得分:0)

您可以使用此方法:

public static string CommentToUpper(string input)
{
    int index = input.IndexOf("/*");
    if (index >= 0)
    {
        int endIndex = input.LastIndexOf("*/");
        if (endIndex > index)
            return string.Format("{0}/*{1}*/{2}", 
                input.Substring(0, index), 
                input.Substring(index + 2, endIndex - index - 2).ToUpper(), 
                input.Substring(endIndex + 2));
        else
            return string.Format("{0}/*{1}", 
                input.Substring(0, index), 
                input.Substring(index + 2).ToUpper());
    }
    return input;
}

以这种方式使用它:

string output =  CommentToUpper("> I am /*not working*/ right now.");
Console.Write(output);

Demo