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 |