Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用小写字母替换大写字母,反之亦然_C#_String - Fatal编程技术网

C# 用小写字母替换大写字母,反之亦然

C# 用小写字母替换大写字母,反之亦然,c#,string,C#,String,输入字符串:这是一个字符串 输出t这是一个字符串 我能够将大写字母转换为小写字母,但不知何故,我无法将它们链接起来: 这是我的密码。。有人能帮帮我吗 static void Main() { string lstr = ""; string ustr = ""; Console.WriteLine("Enter the string"); string str = Console.ReadLine(); char[] strchararr = str.T

输入字符串:这是一个字符串 输出t这是一个字符串

我能够将大写字母转换为小写字母,但不知何故,我无法将它们链接起来:

这是我的密码。。有人能帮帮我吗

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]);
        }
    }
}

我想你说的链接是指如何得到一个完整的结果字符串? 在这种情况下,不需要同时使用lstr和ustr变量,只需使用一个

例如: 更换线路

        ustr += char.ToUpper(strchararr[i]);


我想你说的链接是指如何得到一个完整的结果字符串? 在这种情况下,不需要同时使用lstr和ustr变量,只需使用一个

例如: 更换线路

        ustr += char.ToUpper(strchararr[i]);

使用linq

var converted = str.Select(x => char.IsUpper(x) ? char.ToLower(x) : char.ToUpper(x));
var result = new string(converted.ToArray);
或者是一种foreach方法

还是一个for循环

使用linq

var converted = str.Select(x => char.IsUpper(x) ? char.ToLower(x) : char.ToUpper(x));
var result = new string(converted.ToArray);
或者是一种foreach方法

还是一个for循环


您的代码有一些问题

您使用的是两个字符串ustr和lstr。您应该使用一个字符串来存储结果,并将char.ToLower和char.ToUpper的结果附加到该字符串

除了A-Z和A-Z之外,您也没有处理任何其他事情。您应该添加一个else块,只附加任何不需要转换的字符

    char[] strchararr = str.ToCharArray();

    for (int i = 0; i < strchararr.Length; i++)
    {

        if (strchararr[i]>='a'&& strchararr[i]<='z')
        {
            finalString += char.ToUpper(strchararr[i]);

        }

        else if (strchararr[i] >= 'A' && strchararr[i] <= 'Z')
        {
            finalString+=char.ToLower(strchararr[i]);
        } else {
            finalString += strchararr[i];
        }
    }

    Console.WriteLine(finalString);

如果您想处理其他字母表中的字母,例如西里尔文、希腊文,则应使用和检查大小写。

您的代码有一些问题

您使用的是两个字符串ustr和lstr。您应该使用一个字符串来存储结果,并将char.ToLower和char.ToUpper的结果附加到该字符串

除了A-Z和A-Z之外,您也没有处理任何其他事情。您应该添加一个else块,只附加任何不需要转换的字符

    char[] strchararr = str.ToCharArray();

    for (int i = 0; i < strchararr.Length; i++)
    {

        if (strchararr[i]>='a'&& strchararr[i]<='z')
        {
            finalString += char.ToUpper(strchararr[i]);

        }

        else if (strchararr[i] >= 'A' && strchararr[i] <= 'Z')
        {
            finalString+=char.ToLower(strchararr[i]);
        } else {
            finalString += strchararr[i];
        }
    }

    Console.WriteLine(finalString);
如果要处理其他字母表中的字母,如西里尔文、希腊文,应使用和检查大小写。

以字符作为数字: 当所有字符的代码点低于256时适用

以字符作为数字: 当所有字符的代码点低于256时适用


你是什么意思,但不知为什么我无法链接它们检查Char.IsUpper或Char.IsLower,然后使用Char.ToUpper或Char.tolower你是什么意思,但不知为什么我无法链接它们检查Char.IsUpper或Char.IsLower,然后使用Char.ToUpper或Char.ToLowerresult+=-你真的在循环中向字符串添加字符吗?@AntonínLejsek不,环顾四周神经紧张Lyresult+=-你真的在循环中向字符串添加字符吗?@AntonínLejsek不,环顾四周神经紧张非常感谢你的帮助和解释。这完全有道理。@Ash0214请考虑通过单击该复选标记接受您认为最好的答案!非常感谢您的帮助和解释。这完全有道理。@Ash0214请考虑通过单击该复选标记接受您认为最好的答案!
for (var i = 0; i < str.Length; i++)
     result += char.IsUpper(str[i]) ? char.ToLower(str[i]) : char.ToUpper(str[i]);
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);
    char[] strchararr = str.ToCharArray();

    for (int i = 0; i < strchararr.Length; i++)
    {

        if (strchararr[i]>='a'&& strchararr[i]<='z')
        {
            finalString += char.ToUpper(strchararr[i]);

        }

        else if (strchararr[i] >= 'A' && strchararr[i] <= 'Z')
        {
            finalString+=char.ToLower(strchararr[i]);
        } else {
            finalString += strchararr[i];
        }
    }

    Console.WriteLine(finalString);
StringBuilder sb = new StringBuilder(input.Length);
foreach (char c in input)
    sb.Append(!char.IsLetter(c) ? c : c < 97 ? (char)(c + 32) : (char)(c - 32));