조회 수 78005 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

StringBuilder 객체는 string과 마찬가지로 문자열을 담는 역할을 하지만, 차이점이 있습니다. 그것은 문자열을 수정할 수 있다는 점입니다. 이러한 특성을 C#에서는 mutable이라고 합니다.

StringBuilder 객체 정의하기

StringBuilder 객체를 정의할 때에도 문자열의 내용을 다음과 같은 형식으로 기입해 주시면 됩니다.

StringBuilder 변수_이름 = new StringBuilder(문자열_내용);

위 형식을 구성하는 요소들을 다음과 같이 정리하였습니다.

구성 요소

설명

변수_이름

StringBuilder 객체의 이름을 정합니다.

문자열_내용

StringBuilder 객체가 보유할 문자열의 내용을 기입합니다. 방법은 다음과 같습니다.

1. 따옴표(") + 문자열 내용 + 따옴표(")

(예) StringBuidler greeting = new StringBuilder("Hello.");

2. string 변수의 이름

(예) string str = "Hello.";

StringBuidler greeting = new StringBuilder(str);

3. 그 외 여러가지들이 있습니다. 다음 사이트를 참조하시기 바랍니다.

http://msdn.microsoft.com/en-us/library/system.text.stringbuilder.aspx

StringBuilder로 할 수 있는 작업들

StringBuilder는 문자열의 내용을 수정하는 메소드들을 제공합니다. 이들을 다음 표로 정리하오니 참고하시기 바랍니다.

원하는 작업

StringBuilder가 제공하는

필드 또는 메소드

사용 예

출력 결과

새로운 문자열을 뒤에 추가한다.

StringBuilder Append(string value)

StringBuilder strBldr

= new StringBuilder("Super");

strBldr.Append(" Star");

Console.WriteLine(strBldr.ToString());

Super Star

(해설: "Super" 뒤에 " Star"가 추가되어 "Super Star"가 됩니다.)

중간에 문자열을 삽입한다.

StringBuilder Insert(

int index, // 이 위치에

string value) // 를 삽입

StringBuilder strBldr

= new StringBuilder("Super Star");

strBldr.Insert(6, "Real ");

Console.WriteLine(strBldr.ToString());

Super Real Star

(해설: 현재 문자열의 6번째 위치는 두번째 S이고, 이 위치부터 문자열 "Real "이 삽입됩니다.)

현재 문자열의 일부를 지운다.

StringBuilder Remove(

int startIndex, // 이 위치부터

int length) // length개의 문자들을 제거

StringBuilder strBldr

= new StringBuilder("Super Star");

strBldr.Remove(3, 5);

Console.WriteLine(strBldr.ToString());

Supar

문자열의 일부를 다른 것으로 대체한다.

StringBuilder Replace(

char oldChar, // 를

char newChar) // 로 교체

StringBuilder strBldr

= new StringBuilder("Super Star");

strBldr.Replace('S', 's');

Console.WriteLine(strBldr.ToString());

super star

StringBuilder Replace(

string oldValue, // 를

string newValue) // 로 교체

StringBuilder strBldr

= new StringBuilder(

"One little, two little Indians");

strBldr.Replace("little", "big");

Console.WriteLine(strBldr.ToString());

One big, two big Indians

StringBuilder Replace(

char oldChar, // 를

char newChar, // 로 교체

int startIndex, // 교체 범위의 시작 위치

int count) // startIndex ~ startIndex + count

StringBuilder strBldr

= new StringBuilder(

"One little, two little Indians");

strBldr.Replace('l', 'L', 0, 8);

Console.WriteLine(strBldr.ToString());

One Little, two little Indians

StringBuilder Replace(

string oldValue, // 를

string newValue, // 로 교체

int startIndex, // 교체 범위의 시작 위치

int count) // startIndex ~ startIndex + count

StringBuilder strBldr

= new StringBuilder(

"One little, two little Indians");

strBldr.Replace("little", "big", 15, 10);

Console.WriteLine(strBldr.ToString());

One little, two big Indians

StringBuilder 객체를 string 형으로 바꾼다.

string ToString()

StringBuilder strBldr

= new StringBuilder("Hello.");

Console.WriteLine(strBldr.ToString());

Hello.

형식에 맞춘 문자열을 추가하고 싶다.

AppendFormat(

string format,

params Object[] args)

string name1 = "Park", name2 = "Son";

StringBuilder strBldr

= new StringBuilder(

"One little, two little Indians");

strBldr.AppendFormat(

"\nTheir names: {0}, {1}",

name1, name2

);

Console.WriteLine(strBldr.ToString());

One little, two little Indians
Their names: Park, Son

 

class StBuilder

{

        public static void Main()

        {

            StringBuilder sb = new StringBuilder("Hello");

            Console.WriteLine("문자열 {0}", sb);

 

            

            //capacity - 객체의 용량 반환, 50으로 설정해도 자동으로 64로 됨

            

            Console.WriteLine("해시코드 : {0}, 전체공간 : {1}, 문자열 길이:{2} ", sb.GetHashCode(), sb.Capacity, sb.Length);

 

            sb.Append("World!!~!~!~~!!!");

            Console.WriteLine("문자열 {0}", sb);

            Console.WriteLine("해시코드 : {0}, 전체공간 : {1}, 문자열 길이:{2} ", sb.GetHashCode(), sb.Capacity, sb.Length);

 

            sb.EnsureCapacity(50);

            //string 객체를 배열처럼 다룰수도 있음

            sb[0] = 'Y';

            sb[6] = 'p';

            Console.WriteLine("h-y, y-p 변경 : {0}", sb.ToString());   //전체 문자열

            Console.WriteLine("해시코드 : {0}, 전체공간 : {1}, 문자열 길이:{2}, 최대 가능 공간 : {3} ", sb.GetHashCode(), sb.Capacity, sb.Length, sb.MaxCapacity);

        }

}


using System;
using System.Text;
using System.Diagnostics;

class Program
{
    static void Main()
    {
 // 1.
 // Declare a new StringBuilder.
 StringBuilder builder = new StringBuilder();

 // 2.
 builder.Append("The list starts here:");

 // 3.
 builder.AppendLine();

 // 4.
 builder.Append("1 cat").AppendLine();

 // 5.
 // Get a reference to the StringBuilder's buffer content.
 string innerString = builder.ToString();

 // Display with Debug.
 Debug.WriteLine(innerString);
    }
}

 

using System;
using System.Text;

class Program
{
    static void Main()
    {
 StringBuilder builder = new StringBuilder(
     "This is an example string that is an example.");
 builder.Replace("an", "the"); // Replaces 'an' with 'the'.
 Console.WriteLine(builder.ToString());
 Console.ReadLine();
    }
}

 

using System;
using System.Text;

class Program
{
    static void Main()
    {
 string[] items = { "Cat", "Dog", "Celebrity" };

 StringBuilder builder2 = new StringBuilder(
     "These items are required:").AppendLine();

 foreach (string item in items)
 {
     builder2.Append(item).AppendLine();
 }
 Console.WriteLine(builder2.ToString());
 Console.ReadLine();
    }
}

 

using System;
using System.Text;

class Program
{
    static string[] _items = new string[]
    {
 "cat",
 "dog",
 "giraffe"
    };

    /// <summary>
    /// Append to a new StringBuilder and return it as a string.
    /// </summary>
    static string A1()
    {
 StringBuilder b = new StringBuilder();
 foreach (string item in _items)
 {
     b.AppendLine(item);
 }
 return b.ToString();
    }

    static void Main()
    {
 // Called in loop.
 A1();
    }
}

 

 

 

 

 


Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
506 LINUX awk 명령어 사용법 1 2006.02.16 114745 15
505 MFC CString 에서 형변환 함수들 총정리 2010.11.29 102794 0
504 Android adb am 명령어 ; app 실행 및 Intent 전송 2013.08.12 100456 0
503 Android [GIT 사용법] Git Tutorial 2011.12.26 96568 0
502 일반 ┗ bat(배치)파일 문법 2007.08.06 93669 8
501 LINUX [Shell Script] 리눅스 쉘(Shell) 스크립트 2014.09.23 86874 0
500 JAVA JAVA String 클래스 메소드 정리 1 2015.02.05 85017 0
499 LINUX [Shell Script] 쉘 스크립트에서의 사칙연산과 문자열 자르기 2014.11.01 81823 0
» C# StringBuilder로 문자열 처리를 빠르게 2012.12.04 78005 0
497 LINUX du 명령어 사용법(디스크 용량 확인) 1 2012.05.31 77510 0
496 Python BeautifulSoup으로 웹에 있는 데이터 긁어오기 2013.04.08 77012 0
495 Android [GIT 사용법] 초보자가 알아두면 좋을 명령어 정리 1 2011.12.26 66589 0
494 LINUX errno.h - system error numbers 2013.01.09 65949 0
493 MFC API를 이용하는 유니코드와 ANSI 문자열간의 변환 방법 2006.04.14 63200 0
492 일반 findstr 사용법 - window용 find, grep 명령 2014.02.04 63199 0
목록
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 ... 34 Next ›
/ 34

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5