영어 알파벳으로 이루어진 문자열 str
이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.
제한사항
입력 #1
aBcDeFg
출력 #1
AbCdEfG
using System;
//Select 함수를 사용하기 위한 네임스페이스
using System.Linq;
public class Example
{
public static void Main()
{
String s;
Console.Clear();
s = Console.ReadLine();
//대문자와 소문자를 구분하는 조건 연산자
//아래 조건연산자의 ?:은 삼항 연산자로 =>은 람다 표현식이라고 한다.
//IsUpper가 true일 경우 소문자를 반환하고 false일 경우 대문자를 반환
//var 변수는 형식을 지정하지 않고 할당된 값을 기반으로 추론하는 암시적 형식 지정
//변수의 형식이 명시적이지 않기 때문에 코드의 가독성을 떨어뜨리기 때문에 사용에 주의해야 함
var chars = s.Select(x => char.IsUpper(x) ? char.ToLower(x) : char.ToUpper(x));
var invertedCase = new string(chars.ToArray());
Console.WriteLine(invertedCase);
}
}
람다 표현식과 삼항연산자에 대해 알 수 있었다.
람다식은 x
에 =>
우측에 있는 삼항 연산자를 입력하는 식으로 되어있다.
삼항 연산자는 참/거짓을 판단할 변수나 조건식을 지정한 뒤 ?
다음에 참과 거짓일 때 사용할 값을 나열한 것으로 :
앞은 true
일 때, 뒤는 false
일 때 사용할 값이다.
위 코드에 따르면 ?
앞의 IsUpper
는 대문자 일 때 true
를 반환하고 소문자일 때 false
를 반환한다. true
일 경우 대문자이므로 ToLower
로 소문자로 변환하고 false
일 경우 소문자이니 ToUpper
로 대문자를 반환한다.