public int IndexOf(string value);
// 문장내에서 특정 문자나 문자열이 맨 처음 발견되는 인덱스 번호를 알려주는 메서드
public string Replace(string oldValue, string newValue);
// 원래 문자/문자열을 대체할 문자/문자열로 변경
public string Substring(int startindex, int lenght);
// 시작위치 길이만큼 결과를 돌려줌, 시작위치는 0 부터 시작
string delimiter = ","; // 구분자
string _Header = string.Empty;
for (int i = 0; i < dgv.Columns.Count; i++)
{
string strr = dgv.Columns[i].HeaderText;
_Header += strr + delimiter;
}
_Header = _Header.Substring(0, _Header.Length - 1); // 전체 길이에서 마지막 1글자만 뺀 길이
_Header = _Header.Trim();
MessageBox.Show(_Header);
System.Text.StringBuilder 클래스는 문자열을 버퍼형식으로 수정할 수 있도록 도와주는 클래스로 문자열을 추가, 수정, 삭제, 검색 등의 기능을 제공한다.
Append : 현재 StringBuilder 의 끝에 정보를 추가
Insert : 문자열/개체를 StringBuilder에서 지정한 인덱스 위치에 삽입
Remove : 현재 StringBuilder 에서 지정한 수만큼의 문자를 제거
Replace : 지정된 인덱스에 있는 문자를 대체
CopyTo : 현재 StringBuilder 특정위치에서 시작하여 바이트수만큼 목적지 문자배열의 특정위치에 복사할 때 사용
ToString : StringBuilder 의 값을 문자열로 변환
문자열을 합쳐나갈 때 StringBuilder 를 사용하면 처리속도가 훨씬 빠르다.
위에서 구분자(delimiter)를 주고 문자열을 합치고, 다시 Substring 으로 잘라내는 것보다 코드도 깔끔하고 성능도 우수하다.
StringBuilder sb = new StringBuilder();
for (int i = 0; i < dgv.Columns.Count; i++)
{
if (sb.Length > 0) // 최초에는 sb 길이가 0 이므로 , 가 추가되지 않는다.
{
sb.Append(",");
}
sb.Append(dgv.Columns[i].HeaderText);
MessageBox.Show(sb.ToString()); // for 문을 돌면서 sb문자열의 결과를 확인
}
sb.Append(dgv.Columns[i].HeaderText); 대신에 sb.Append("'" + dgv.Columns[i].HeaderText + "'"); 를 하면 작은 따옴표로 값을 감싸면서 문자열을 얻어낼 수 있다.
'C# > 문법 및 기능' 카테고리의 다른 글
C# 밀리초 단위를 받아서 시/ 분/초 단위로 표시 (0) | 2015.10.18 |
---|---|
C# 몫과 나머지 구하기 (0) | 2015.10.17 |
C# 문자열 분리 Split (0) | 2015.10.09 |
C# 파일 경로, 파일명, 확장자, 현재 경로 (0) | 2015.09.29 |
C# 변수 선언, 제어문과 자동완성 기능 (2) | 2015.09.25 |