[BCL] System.String

개발조하·2023년 10월 28일
0

C#

목록 보기
5/11
post-thumbnail

1. System.String의 메서드

메소드( )설명
Contains인자로 전달된 문자열을 포함하고 있는지 여부(bool)
IndexOf문자열을 포함하는 경우 그 위치를 반환, 포함하지 않으면 -1 반환
Startswith인자로 전달된 문자열로 시작하는지 여부(bool)
EndsWith인자로 전달된 문자열로 끝나는지 여부(bool)
Replace첫 번째 인자의 문자 또는 문자열을 두 번째 인자의 값으로 치환된 문자열을 반환
ToLower문자열을 소문자로 변환해서 반환
ToUpper문자열을 대문자로 변환해서 반환
Substring시작과 길이에 해당하는 만큼의 문자열을 반환
Split주어진 문자 또는 문자열을 구분자로 나뉜 문자열의 배열을 반환
Trim문자열의 앞뒤에 주어진 문자를 삭제하여 문자열을 반환. 문자가 지정되지 않으면 기본적으로 공백을 제거하여 반환
Format형식에 맞는 문자열을 생성해 반환

2. 실습

  • 문제: '자축인묘진사오미신유술해' 중에서 여섯 글자를 받아 들여서 삼합이 성립하는지 검사하는 프로그램 만들기
    다음 세 글자가 모두 있으면 삼합 성립 -> '해묘미', '인오술'
namespace StringPractice
{
    class StringPractice 
    {
        public void Run()
        {
            string str = GetString();
            if (Find해묘미(str)) Console.WriteLine("해묘미 합입니다.");
            else Console.WriteLine("삼합이 아닙니다.");
            if (Find인오술(str)) Console.WriteLine("인오술 합입니다.");
            else Console.WriteLine("삼합이 아닙니다.");
        }

        private bool Find해묘미(string str)
        {
            // str은 6자를 가지고 있다.
            // 여기에 해, 묘, 미 세 글자가 포함되어 있으면 true를 반환, 그렇지 않으면 false 반환
            if (str.Contains("해") && str.Contains("묘") && str.Contains("미"))
                return true;
            return false;
        }

        private bool Find인오술(string str)
        {
            string[] yos = new string[] { "인", "오", "술" };
            foreach (string s in yos)
                if (str.IndexOf(s) < 0) //-1을 반환 (안갖고 있음)
                    return false;
            return true;
        }

        private string GetString()
        {
            while (true) //for( ; ;) 무한루프
            {
                Console.WriteLine("'자축인묘진사오미' 중에서 6자를 입력하시오.(순서 상관없음. 중복 가능)");
                Console.Write("입력: ");
                string str = Console.ReadLine();
                if (str.Length != 6)
                {
                    Console.WriteLine("6자가 아닙니다.");
                    continue;
                }
                else
                    return str;
            }
        }
    }
    internal class Program
    {
        static void Main(string[] args)
        {
            StringPractice sp = new StringPractice();
            sp.Run();
        }
    }
}

ㄴ 단순하게 if ~else로만 로직을 고민했다면 매우 복잡한 프로그램으로 만들어졌을 것. String에서 제공하는 메서드를 적극 활용해서 효율적인 코드를 짜보는 연습이 필요하다.

📄참고자료
[인프런] c# 프로그래밍 기초 - 이교준

profile
Unity 개발자 취준생의 개발로그, Slow and steady wins the race !

0개의 댓글