[TIL] C# 추가 학습 - day 4

뭉크의 개발·2023년 7월 24일
0

C# - Pre-Camp

목록 보기
7/7
post-thumbnail

🐧 들어가기 앞서

오늘은 사전캠프 OT를 수강했다.

원래는 C# 언어를 이번주 수강해야하는데, 일찍 공부를 시작해 다른 인원보다 일주일 앞섰다.

앞으로도 꼼꼼하게 찾아봐야겠다.


🐧 오늘 배운 것

마이크로소프트에서 제공하는 C# 가이드를 학습했다.

대문자, 소문자 변경하기.


🐧 기억할 것

.NET이란?

C# 프로젝트를 생성하다보면 프로젝트 이름과 경로를 설정한 뒤, 추가 정보 설정 팝업이 뜬다.

여기서 프레임워크에 .NET이 보이는데, 어떤 의미인지 궁금했다.


.NET은 애플리케이션을 빌드하기 위한 무료 플랫폼간 오픈 소스 개발자 플랫폼이다.

CLR(Common Language Runtime) 기반으로 빌드된다.

따라서 개발자가 작성하는 대로 코드를 컴파일 한다. (JIT, Just In Time Compiler)

컴파일하는 동안 CLR은 코드를 CIL(Common Intermediate Language)로 변환한다.

이후 .NET 런타임은 CIL 코드의 실행을 관리한다. CIL은 교차 플랫폼 호환성을 가져 모든 운영 체제에서 처리할 수 있다.

즉, C#의 애플리케이션은 코드 수정 없이 Windows, Linux, Mac OS에서 실행 가능하다.


C#과 .NET의 연관성?

C#은 .NET 프레임워크에서 실행되는 다양한 응용프로그램을 만들기 위해 디자인된 프로그래밍 언어이다.


대소문자 바꿔서 출력하기

C#에서 대소문자를 변경하는 법은 뭘까?

String.ToUpper // 대문자로 변환
String.ToLower // 소문자로 변환
Textinfo.ToTitleCase // 단어의 첫 글자를 대문자로 변환
  • ToUpper
string properString = "Hello World!";
Console.WriteLine(properString.ToUpper());

// HELLO WORLD!
  • ToLower
string properString = "Hello World!";
Console.WriteLien(properString.ToLower());

// hello world!
  • ToTitleCase
using System;
using System.Globalization; // 문화를 구분해서 그에 맞게 변경을 함 와우!!

public class Example
{
    public static void Main()
    {
        string[] values = { "a tale of two cities", "gROWL to the rescue",
                            "inside the US goverment", "sports and MLB baseball"};

        TextInfo ti = CultureInfo.CurrentCulture.TextInfo; //Globalization 수행
        foreach (var value in values)
            Console.WriteLine("{0} --> {1}", value, ti.ToTitleCase(value));
    }
}


대문자는 소문자, 소문자는 대문자로

Linq(Language - Intergrated Query) 를 이용해서 변환할 수 있다.

  • 고차 함수 API, 언어 수준의 쿼리 기능을 제공한다.
using System.Linq;

String s = "Hello";
var o = s.Select(c => char.IsUpper(c) ? char.ToLower(c) : char.toUpper(c));
var output = new string(o.ToArray());

Console.WriteLine(output);

또는

using System;

String s;

s = Console.ReadLine();

foreach(char c in s){
	if(char.IsUpper(c)){
    	Console.Write(char.ToLower(c));
    }
    else
    {
    	Console.Write(char.ToUpper(c));
    }
}

🐧 오늘 깨달은 것

표현 방식

특수 문자 표현하기

using System;

public class Example
{
    public static void Main()
    {
        string s;
        s = "!@#$%^&*("+"\\"+"\'"+ "\"" +"<>?:;";
        Console.WriteLine(s);

    }
}

여기서 굳이 +를 추가하지 않아도 괜찮다.

using System;

public class Example
{
    public static void Main()
    {
        string s = "!@#$%^&*(\\\'\"<>?:;";


        Console.Write(s);
    }
}

{0}, {1}?

using System;

public class Example
{
    public static void Main()
    {
        String[] s;

        Console.Clear();
        s = Console.ReadLine().Split(' ');

        int a = Int32.Parse(s[0]);
        int b = Int32.Parse(s[1]);

        Console.WriteLine(a +  " + " + b + " = " + "{0}", a + b);
    }
}

위 코드는 프로그래머스의 코딩테스틀 풀다가 작성한 내 코드다.
누가봐도 좀 더럽다. 이럴때 {0}, {1}, {2} ... 등을 이용해 간단하게 작성할 수 있다.

using System;

public class Example
{
    public static void Main()
    {
        String[] s;

        Console.Clear();
        s = Console.ReadLine().Split(' ');

        int a = Int32.Parse(s[0]);
        int b = Int32.Parse(s[1]);

        Console.WriteLine("{0} + {1} = {2}", a, b, a + b);
    }
}

{0}에는 a값이
{1}에는 b값이
{2}에는 a+b값이 전달된다!

훨씬 간단해졌다!


공백 제거

  • x.Trim();
    앞, 뒤 공백 제거
  • x.TrimStart();
    앞 공백 제거
  • x.TrimEnd();
    뒤 공백 제거
string Test = " test test ";
string Output = Test.Trim(); //test test
string Output1 = Test.TrimStart(); //test test^
string Output2 = Test.TrimEnd(); //^test test 
  • 문자열 중간 공백 제거
string Output3 = Test.Replace(" ","");

Reference

0개의 댓글