C#/C# 기본

[C#] 문자열

로파이 2021. 10. 2. 14:48

String 형식의 문자열과 C#에서 기본으로 제공하는 기능 함수를 살펴본다.

 

- 문자열 탐색

  • IndexOf() : 지정된 문자나 문자열이 나타나는 첫번째 위치를 찾는다.
  • LastIndexOf() :  끝에서 부터 지정된 문자나 문자열이 나타나는 첫번째 위치를 찾는다.
  • StartsWith() : 지정된 문자열로 시작하는 지 bool로 판별한다.
  • EndsWith() : 지정되 문자열로 끝나는 지 bool로 판별한다.
  • Contains() : 지정된 문자열을 포함하는 지 bool로 판별한다.
  • Replace(string src, string dst) : 지정된 문자열을 찾아서 모두 다른 문자열로 치환한다.

 

- 문자열 변형

  • ToLower() : 모두 소문자로
  • ToUpper() : 모두 대문자로
  • Insert(int startIdx, string value) : 지정된 위치에 삽입된 새문자열을 반환
  • Remove(int startIdx) / Remove(int startIdx, int count) : 지정된 위치부터 일정 길이를 삭제한 문자열을 반환
  • Trim() : 앞 뒤로 공백을 모두 삭제
  • TrimStart() : 앞에 있는 공백을 모두 삭제
  • TrimEnd() : 뒤에 있는 공백을 모두 삭제

 

- 문자열 분할

  • Split() : 지정된 문자를 기준으로 문자열을 분리하여 얻은 문자열 배열을 반환
  • SubString() : 지정된 위치로 부터 일정 길이를 지정한 부분 문자열을 반환
namespace HelloWorld
{
    class MainApp
    {
        static void Main(string[] args)
        {
            string greeting = "Good Morning";

            WriteLine(greeting);
            WriteLine();

            // IndexOf()
            WriteLine("IndexOf 'Good' : {0}", greeting.IndexOf("Good"));

            // Contains()
            WriteLine("Contains 'Morning' : {0}", greeting.Contains("Morning"));

            // Replace()
            WriteLine("Replaced Morning with Evening : {0}", greeting.Replace("Morning", "Evening"));


            // Insert()
            WriteLine("Inserted At Last 'Everyone' : {0}", greeting.Insert(greeting.Length, " Everyone"));

            // Remove()
            WriteLine("Removed 'Good' : {0}", greeting.Remove(0, 4));

            // Split()
            WriteLine("Split By Blank' '");
            string[] arr = greeting.Split(new string[] {" "}, StringSplitOptions.None);

            foreach(string element in arr)
            {
                WriteLine("{0}", element);
            }

            Read();
        }
    }
}

- 문자열 서식 맞추기

Console.WriteLine()과 string.Format()에서 주로 사용되는 서식을 이용한 문자 만들기

{첨자, 맞춤 : 서식}

  • 첨자 : 매개 변수 번호
  • 맞춤 : -(왼쪽)/+(오른쪽) 맞춤
  • 서식 : D(10진수), X(16진수), N(,로 묶어서 표현), F(고정 소수점), E(지수)
  • 날짜 시간의 출력 DatmeTime (yyyy-MM-dd / HH:mm:ss / tt / ddd)

ex) 서식 예제

using System;
using System.Globalization;
using static System.Console;

namespace HelloWorld
{
    class MainApp
    {
        static void Main(string[] args)
        {
            string fmt = "{0,-20}{1,-15}{2,30}";

            WriteLine(fmt, "Publisher", "Author", "Title");
            WriteLine(fmt, "Marvel", "Stan Lee", "Iron Man");
            WriteLine(fmt, "Hanbit", "Park", "This is C#");


            // D: 10진수
            WriteLine("10진수: {0:D}", 123);
            WriteLine("10진수 : {0:D5}", 1234567);

            // X: 16진수
            WriteLine("16진수 : 0x{0:X}", 0xFFFF);

            // N : 숫자
            WriteLine("금액 : {0:N3}원", 1000000000);

            // F : 고정 소수점
            WriteLine("고정 소수점: {0:F2}", 123.4567);

            // E: 공학용
            WriteLine("공학용 : {0:E}", 123.456);

            WriteLine();

            DateTime datetime = new DateTime(2021, 10, 2, 14, 11, 30); // 년/월/일/시/분/초

            // 12시간 형식
            WriteLine("12시간 형식 : {0:yyyy-MM-dd tt hh:mm:ss (ddd)}", datetime);

            // 24시간 형식
            WriteLine("24시간 형식 : {0:yyyy-MM-dd tt HH:mm:ss (ddd)}", datetime);

            WriteLine();

            // 지역에 따라 다른 형식을 사용
            CultureInfo koKR = new CultureInfo("ko-KR");
            WriteLine(datetime.ToString("ko-KR 형식 : {0:yyyy-MM-dd tt HH:mm:ss (ddd)}", koKR));

            CultureInfo enUS = new CultureInfo("en-US");
            WriteLine(datetime.ToString("en-US 형식 : {0:yyyy-MM-dd tt HH:mm:ss (ddd)}", enUS));

            Read();
        }
    }
}

 

- 문자열 보간

C# 6.0에서부터 사용할 수 있는 기능으로 $으로 시작하여 {표현값, 맞춤 :서식}의 묶음으로 문자열을 표현

$"{문자열 1},{문자열 2},{...}"의 표현으로 문자열을 합친다.

namespace HelloWorld
{
    class MainApp
    {
        static void Main(string[] args)
        {
            WriteLine("{0},{1}", 123, "최강한화");
            WriteLine($"{123},{"최강한화"}");


            WriteLine("{0, -10:D5}", 123);
            WriteLine($"{123,-10:D5}");

            int n = 123;
            string s = "최강한화";
            WriteLine("{0},{1}", n, s);
            WriteLine($"{n},{s}");

     
            WriteLine("{0},{1}", n > 100 ? "big" : "small", s);
            WriteLine($"{ (n > 100 ? "big" : "small")},{s}");

            Read();
        }
    }
}

 

 

'C# > C# 기본' 카테고리의 다른 글

[C#] 클래스  (0) 2021.10.06
[C#] 메서드  (0) 2021.10.05
[C#] 분기문  (0) 2021.10.02
[C#] 연산자  (0) 2021.10.02
[C#] 기본 자료형  (0) 2021.09.30