본문 바로가기

Study_C#

Doridori C# 강의 정리 1. String

728x90

0. 강의 목표

  • Visual Studio 상에서 Project 생성 후 String과 관련된 여러 함수들을 적용시켜 그 결과를 화면에 표시
  • 앞쪽은 UI 그리는 내용 / 뒤쪽은 그 안에 들어가는 프로그램을 짜는 내용

1. Visual Studio Project 생성

  • Create a new project -> Windows Forms App (.NET Framework) 선택 후 이름 입력하여 Project 생성

 

  • Project 생성 직후 아래와 같은 창이 표시됨

Project 생성 직후 모습

 

  • 위 창에 Text를 하나 집어넣고 그를 제어하는 것이 목표

 

2. Control 추가

  • 좌측의 'ToolBox' 클릭 후 Common Controls -> Label 선택
  • 이렇게 ToolBox에서 Form 상으로 끌어와 사용할 수 있는 요소들을 'Control' 이라 함

 

2.1 Control Property 변경

  • 우측 하단의 Properties 클릭 후 Text를 "Sample, Test, Text"로 변경

 

 

  • Button 추가
    • Button을 누르면 어떤 동작을 하게 됨

 

  • "Run"으로 Text 변경

 

  • 다수의 Label 추가 후 각 이름 지정
    • 위 Label은 Data를 담는 껍데기 역할

 

  • 실제 Data를 표시할 Label 추가 

 

  • Data를 표시하는 Label의 경우 위의 Design -> Name이 가장 중요
    • Name : 해당 Object를 식별하기 위해 Code에서 사용되는 이름
    • Text : 단순히 Control의 이름을 표시하는 용도
  • 이 Name을 가져와서 해당 Label의 값을 바꾸겠다는 뜻
    • 따라서 이 Name을 알아보기 쉽게 지어야 함
  • Name을 'lblContain' 으로 변경 후 Text는 아무 것도 없다는 뜻인 '-'로 변경

 

  • 옆의 String에 맞게 각 '-' Label의 Name 설정 후 창 크기 조절
    • 프로그램 크기에 맞게 자동으로 가변하게 할 수도 있음

 

3. 코드 작성

 

  • 위의 'Run' Button을 더블클릭하면 나오는 화면

 

  • 위처럼 한 String에 대해 제어할 수 있는 많은 Method들이 존재함

 

  • 사용자가 생성한 String도 지정 가능

 

적용할 String 관련 함수들

 

 

3.1 Button을 누를 시 앞서 생성한 여러 Label들에 위의  
      String 관련 함수를 대입한 결과를 표시하는 코드 작성

  • 즉 위 함수들의 대입을 Button의 Event로써 작성
  • Button의 Event는 Button을 더블클릭 했을 경우 발생

 

3.1.1 Contain() 

  • 위의 Run Button을 더블클릭 할 경우 lblContain의 Text 값을('-') Contains("Text") 함수의 결과값으로 바꾸는 코드 작성

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Practice_1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

  	... ...
	... ...

        private void button1_Click(object sender, EventArgs e)
        {
            string strText = lblText.Text;

            lblContain.Text = strText.Contains("Text").ToString();
        }

  	... ...
	... ...
    }
}

 

  • 만약 위처럼 함수의 반환값(Bool type)을 그대로 String에 대입할 경우 위처럼 오류가 발생함

 

  • 따라서 위처럼 'ToString()' 함수를 통해 Bool type의 반환값을 String으로 변환
    • C#에서는 'ToString()'만 붙이면 왠만한 Type은 다 String으로 변환됨

 

  • String으로 변환 이후 위의 'Start'(F5) 버튼을 눌러 실행
  • 즉 'Run' Button을 눌렀을 때 "Sample, Test, Text"의 값을 가져와서 Contain을 적용시켜 '-'에 뿌리는 코드 실행

 

"Run" Buttion Push 전(좌) / 후(우)

  • lblText의 Text "Sample, Test, Text:에는 "Text"라는 String이 포함되어 있으므로 Contains("Text") 함수는 True를 return
  • 이후 Bool type의 return값 'True'를 ToString() 함수를 통해 String으로 변환 후 lblContain의 Text에 대입
    • '-' -> 'True'로 변경

 

 

  • Contains 함수의 Parameter 값을 "tmp"로 변경 후 Code 실행 시 lblText의 Text에는 "tmp"가 존재하지 않음
  • 따라서 False 값을 반환

 

3.1.2 Equals(), Length(), Replace()

  • Contains()와 유사한 방식으로 lblContain의 Text 값에 각 함수를 대입
  • 이후 그 결과값을 String으로 변환하여 관련 Label의 Text에 대입하는 코드 작성
  	... ...
	... ...

        private void button1_Click(object sender, EventArgs e)
        {
            string strText = lblText.Text;

            lblContain.Text = strText.Contains("Text").ToString();
            
            lblEquals.Text = strText.Equals("Test").ToString();
            lblLength.Text = strText.Length.ToString();
            lblReplace.Text = strText.Replace("Text", "I Can").ToString();
        }

  	... ...
	... ...
    }
}
  • Equals() : 괄호 안의 String과 해당 String이 동일한지 여부를 Return
  • Length() : 해당 String의 길이를 Return
  • Replace(): 해당 String에 포함된 첫번째 인자 String을 두번째 인자의 String으로 대체

  • 실행 결과

 

3.1.3 Split(params char[] separator) 

  • separator를 기준으로 해당 Sting을 분리함
  • Button Event 부분 내에 lblContain의 Text 값을 Split(',') 함수를 통해 ',' 기준으로 나누는 코드 작성
  	... ...
	... ...

        private void button1_Click(object sender, EventArgs e)
        {
  		... ...
		... ...
            
            string[] strSplit = strText.Split(',');
            lblSplit1.Text = strSplit[0].ToString();
            lblSplit2.Text = strSplit[1].ToString();
            lblSplit3.Text = strSplit[2].ToString();
        }

  	... ...
	... ...
    }
}

 

 

  • 'Split' 함수의 경우 한 String을 나누면 여러 String이 나오므로 위처럼 Array에 결과값을 집어넣어야 함

 

 

  • 실행 결과

 

3.1.4 Substring(int startindex, int length)

  • 해당 String의 startindex번째 index부터 length 길이만큼 잘라내는 함수
	lblSubstring.Text = strText.Substring(3, 5).ToString();

 

 

  • 위처럼 총 17까지인 lblContain의 Text 중 index 3부터 뒤로 5개까지의 index를 분리

 

  • 실행 결과

 

3.1.5 ToLower(), ToUpper(), Trim()

  • ToLower() : 해당 String의 대문자를 모두 소문자로 변환
  • ToUpper() : 해당 String의 소문자를 모두 대문자로 변환
  • Trim() : 해당 String 내의 공백을 제거
    • 아래처럼 해당 String의 전, 후, 전후 모두 중 어디의 공백을 지울지 선택할 수 있음
    • 생각보다 자주 쓰이는 함수

 

 

3.1.6 전체 코드 실행 결과

  • 전체 코드 실행 결과

 

  • 위처럼 함수를 여러개 적용 시킬 수도 있음
    • Split() 함수의 결과값에 TrimStart() 함수를 적용시켜 앞부분의 공백을 제거

 

 

 

 

 

 

 

 

 

 

 

 

 


본 강의의 모든 저작권은 아래 원작자에게 있습니다.

 

강의 출처 :

https://www.youtube.com/watch?v=boUIc2Y4cZo&list=PLoFFz2j8yxxxH_3ustbHATXtMsHZ-Saei&index=1&t=773s

 

 

https://cwkcw.tistory.com/59?category=1001431

 

Doridori C# 강의) 1.string

======================================================안녕하세요 Doridori 입니다. C# 기초 강의를 만들어 볼까 합니다. 기본적으로 책으로 공부하거나 요약되어 있는 이론집같은 것만 보게 될경우 실제로 적용

cwkcw.tistory.com

 

'Study_C#' 카테고리의 다른 글

[C#] Invoke, InvokeRequired, Delegate  (0) 2024.07.30
[C#] Using의 2가지 사용법  (0) 2024.07.30
[C#] 비동기 관련  (0) 2024.07.06
[C#] 자료형 정리  (0) 2024.07.06
Doridori C# 강의 정리 2. Data Type과 Overflow  (0) 2024.05.22