Как преобразовать в строке все маленькие буквы в большие а большие в маленькие?

даниил232323

Дана строка .Преобразовать в ней все маленькие буквы в большие а большие в маленькие. Вот что я написал но только считывает один Элемент а мне надо строку.Помогите исправить.Спасибо.
char a = char.Parse(Console.ReadLine());
            if (char.IsLower(a))
            {
                a = char.ToUpper(a);
                Console.WriteLine(a);
            }
            else
            {
                a=char.ToLower(a);
                Console.WriteLine(a);
            }
            
            Console.ReadKey();
5 ответов

даниил232323

using System;
using System.Text;
 
class Program
{
    static void Main()
    {
        string s = Console.ReadLine();
        StringBuilder sb = new StringBuilder();
        foreach (char c in s)
            sb.Append(char.IsUpper(c) ? char.ToLower(c) : char.ToUpper(c));
        Console.WriteLine(sb.ToString());
        Console.ReadKey();
    }
}


даниил232323

Без StringBuilder (менее производительно)
using System;
using System.Text;
 
class Program
{
    static void Main()
    {
            string s = Console.ReadLine();
            string result = "";
            foreach (char c in s)
                result += (char.IsUpper(c) ? char.ToLower(c) : char.ToUpper(c));
            Console.WriteLine(result);
            Console.ReadKey();
    }
}


даниил232323

Без StringBuilder (менее производительно)
Сколько экземпляров string будет создано в памяти?


даниил232323

паха76, вы же писали в удалённой теме, автор хочет без StringBuilder Понятное дело, что этот вариант хуже. А если вас действительно интересует ответ на вопрос, то = количество символов во входной строке + 2


даниил232323

Без StringBuilder (более производительно)
static void Main(string[] args)
{
    string s = Console.ReadLine();
    char[] result = s.ToCharArray();
    for (int i = 0; i < s.Length; i ++ )
        result[i] = (char.IsUpper(result[i]) ? char.ToLower(result[i]) : char.ToUpper(result[i]));
    Console.WriteLine(new string(result));
    Console.ReadKey();
}