我在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);
}
}
}
答案 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());
}