Case swapping

Description:

Given a string, swap the case for each of the letters.

e.g. CodEwArs --> cODeWaRS

Examples

Kata.Swap("") == ""
Kata.Swap("CodeWars") == "cODEwARS"
Kata.Swap("abc") == "ABC"
Kata.Swap("ABC") == "abc"
Kata.Swap("123235") == "123235"

 

using System;
using System.Linq;

public static class Kata 
{
 public static string Swap(string str)
        {
            return string.Join(string.Empty, str.Select(character => char.IsLower(character) ? char.ToUpper(character) : char.IsUpper(character) ? char.ToLower(character) : character));
        }

        //public static string Swap(string str)
        //{
        //    str = string.Join(string.Empty, str.Select(Selector));
        //    return str; //your code here
        //}

        //public static char Selector(char character)
        //{
        //    char tempCharacter = character;
        //    if (char.IsLower(character))
        //    {
        //        tempCharacter = char.ToUpper(character);
        //    }
        //    else if (char.IsUpper(character))
        //    {
        //        tempCharacter = char.ToLower(character);
        //    }
        //    return tempCharacter;
        //}   
}

 

其他人的解法

需要学习的是:char.ToUpper以及char.ToLower本身可以处理非大小写的字符,不需要另外多一个判断

using System;
using System.Linq;

public static class Kata {
  public static string Swap(string str) {
    return String.Concat(str.Select(c => Char.IsUpper(c) ? Char.ToLower(c) : Char.ToUpper(c)));
  }
}