0

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

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

        }

    }
4

2 回答 2

0

如果您被限制使用像正则表达式这样干净的东西,请考虑使用String.SubString()String.ToUpper()

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

编辑:要考虑的另一件事是使用 IndexOf()。不过,我把它留给你,在 MSDN 中找到

于 2013-09-13T21:43:34.380 回答
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

于 2013-09-13T21:45:06.200 回答