프로그램/C# - Study / / 2010. 9. 17. 12:57

10D - 윈폼

반응형


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

namespace Ex20String
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void Test_Click(object sender, EventArgs e)
        {
            txtLog.Clear(); // TextBox 내의 모든 문자열 제거
            string str = "12345678901234567890";

            txtLog.AppendText("문자열 길이는 " + str.Length + "\r\n");
            txtLog.AppendText("Trimming : " + "_문자열_".Trim('_') + "\r\n");
            txtLog.AppendText("Trimming : " + "문자열".PadLeft(5, '_') + "\r\n"); // 문자열 포함 하고 뛰우고 그사이 공백은 _ 로 채움
            txtLog.AppendText("위치 : " + str.IndexOf("5") + "\r\n");
            txtLog.AppendText("위치 : " + str.LastIndexOf("5") + "\r\n");
            txtLog.AppendText("부분문자열 : " + str.Substring(4, 10) + "\r\n");
            txtLog.AppendText("11위치의 문자 : " + str[11] + "\r\n");

            string[] strs = "Hello, C# programming World".Split(' '); // Split(' ')   ' ' 사이 값으로 분리
            txtLog.AppendText("문자열 분리 : ");
            for (int i = 0; i < strs.Length; i++)
            {
                txtLog.AppendText(string.Format("[{0}]", strs[i])); // 분리된 문자열을 출력
            }
            txtLog.AppendText("\r\n");

            txtLog.AppendText("장동건".StartsWith("장") + "\r\n"); // "장" 으로 시작하면 True

            txtLog.AppendText("=======================================================\n");
            string name = new string(new char[] { '장', '동', '건' });
            string name2 = new string(new char[] { '장', '동', '건' });

            if (object.ReferenceEquals(name, name2)) // ReferenceEquals 참조비교
            {
                txtLog.AppendText("Equals\r\n");
            }
            else
            {
                txtLog.AppendText("Different\r\n"); // 출력
            }

            if (name.Equals(name2)) // 값을 가지고 비교
            {
                txtLog.AppendText("Equals\r\n");  // 출력
            }
            else
            {
                txtLog.AppendText("Different\r\n");
            }

            string name3 = name;
            if (object.ReferenceEquals(name, name3))
            {
                txtLog.AppendText("Equals\r\n"); 
            }
            else
            {
                txtLog.AppendText("Different\r\n"); // 출력
            }
            name = name + "님 반갑습니다.";

            if (object.ReferenceEquals(name, name3))
            {
                txtLog.AppendText("Equals\r\n");  // 출력
            }
            else
            {
                txtLog.AppendText("Different\r\n");
            }
        }
    }
}
/********************************************************************
 * String 클래스
 * 1. 문자열 제어 클래스
 * 2. 데이터는 "문자열" 형식으로 표시
 * 3. 다양한 메서드 및 프로퍼티 제공
 * 4. 동일한 문자열 상수는 항상 같은 객체를 사용합니다.
 *    object.ReferenceEquals("장동선", " 장동건") => True
 *   
 * 5. string은 고정 문자열
 *    문자열 연산이 발생하면 항상 새로운 객체를 생성하서 값을 할당
 *    string str = "hello";
 *    str = str + " therer"; // 새로운 객체를 만들어 "hello there"할당
 *    => string은 +연산이 성능을 나쁘게 하는 효과를 발생시킬 수 있습니다.
 * ******************************************************************/

반응형

'프로그램 > C# - Study' 카테고리의 다른 글

11D - 예외처리(Exception)  (0) 2010.09.24
11D - ArrayList, Hashtable, ICollection, TheGeneric  (0) 2010.09.24
10D - Ex19WindowsForms3  (0) 2010.09.17
10D - Ex18WindowsForms2  (0) 2010.09.17
9D - 윈도우폼 만들기  (0) 2010.09.17
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유