输入字符串:“这是一个字符串” 输出“tTHIS IS A sSTRING
我能够将大写字母转换为小写字母,但不知何故我无法链接它们:(。
这是我的代码..有人可以帮我吗?
static void Main()
{
string lstr = "";
string ustr = "";
Console.WriteLine("Enter the string");
string str = Console.ReadLine();
char[] strchararr = str.ToCharArray();
for (int i = 0; i < strchararr.Length; i++)
{
if (strchararr[i]>='a'&& strchararr[i]<='z')
{
ustr += char.ToUpper(strchararr[i]);
}
else if (strchararr[i] >= 'A' && strchararr[i] <= 'Z')
{
lstr+=char.ToLower(strchararr[i]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用linq
var converted = str.Select(x => char.IsUpper(x) ? char.ToLower(x) : char.ToUpper(x));
var result = new string(converted.ToArray);
Run Code Online (Sandbox Code Playgroud)
或者一种foreach方法
foreach (var c in str)
if (char.IsUpper(c))
result += char.ToLower(c);
else
result += char.ToUpper(c);
Run Code Online (Sandbox Code Playgroud)
或者
foreach (var c in str)
result += char.IsUpper(c) ? char.ToLower(c) : char.ToUpper(c);
Run Code Online (Sandbox Code Playgroud)
或一个for循环
for (int i = 0; i < str.Length; i++)
if (char.IsUpper(str[i]))
result += char.ToLower(str[i]);
else
result += char.ToUpper(str[i]);
Run Code Online (Sandbox Code Playgroud)
或者
for (var i = 0; i < str.Length; i++)
result += char.IsUpper(str[i]) ? char.ToLower(str[i]) : char.ToUpper(str[i]);
Run Code Online (Sandbox Code Playgroud)
或者一个可笑的愚蠢(但超级高效)的unsafe指针版本(仅限 ASCII)
fixed (char* cStr = str)
for (var c = cStr; c < cStr + str.Length; c++)
*c = (char)(*c >= 'A' && *c <= 'Z' ? *c + 32 : *c >= 'a' && *c <= 'z' ? *c - 32 : *c);
Run Code Online (Sandbox Code Playgroud)