将某些字母改为Capital?

时间:2015-01-27 15:12:01

标签: c#

我在c#中接受用户输入我知道如何更改为大写和小写。某个字母怎么办?例如用户输入“James”,我显示“JaMes”?

这是我到目前为止所做的:

namespace Strings
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("Insert 3 letter name containing 'A'");
            string Userinput = Console.ReadLine();
        }

        static string UppercaseFirst(string s)
        {
            // Check for empty string.
            if (string.IsNullOrEmpty(s))
            {
                Console.WriteLine("Please insert a name");
            }

            // Return char and concat substring.
            return char.ToUpper(s[0]) + s.Substring(1);
        }
    }
}

2 个答案:

答案 0 :(得分:0)

所以你想让每个m大写?最简单的方法是使用String.Replace

string result = s.Replace("m", "M");

另一种方式:

string result = string.Concat(s.Select(c => c == 'm' ? 'M' : c));

另一种更有效的方法(如果字符串很大)也支持多个字符:

char[] toUpper = {'m'};
StringBuilder sb = new StringBuilder(s.Length);
for (int i = 0; i < s.Length; i++)
{
    char c = s[i];
    sb.Append(toUpper.Contains(c) ? Char.ToUpper(c) : c);
}
result = sb.ToString();

该集合也可用于其他方法(循环中string.Replace)。

答案 1 :(得分:0)

根据你问题的文字

private static void Main(string[] args)
{
  Console.WriteLine("Insert 3 letter name containing 'A'");

  string userInput = Console.ReadLine();

  string yourCharacter = "m";

  userInput = UpperCharacter(userInput, yourCharacter);
}

private static string UpperCharacter(string srcString, string characterToReplace)
{
  // Check for empty string.
  if (string.IsNullOrEmpty(srcString))
  {
    Console.WriteLine("Please insert a name");
  }
  // Return char and concat substring.
  return srcString.Replace(characterToReplace, characterToReplace.ToUpper());
}