2013-10-28 2 views
0

간단하고 효율적인 방법 (즉, 빠른 속도와 적은 메모리)으로 문자열 작성기의 마지막 두 번째 문자를 바꾸고 싶습니다. 문자열은 대략 200-300 mb가 될 것입니다 (확실하지 않음). 어떻게해야합니까? 입력 문자열에 끝에 개행 문자가 있으면 답변이 변경됩니까?C#에서 stringbuilder로 거대한 문자열 처리하기

감사합니다.

+4

이 문자열의 출처는 어디입니까? 그것의 파일에서 .. 나는 당신이 끝까지 탐색하고 그것의 위에 쓰는 것으로 문자를 교체하는 것이 좋습니다 것입니다. 이렇게하면 300MB 문자열이 메모리에 저장됩니다. –

답변

3

당신은 StringBuilder에서 특정 문자를 덮어 StringBuilder.Chars을 사용할 수

// For example, replace 'x' into the 2nd to last char 
stringBuilder[stringBuilder.Length-2] = 'x'; 
3

StringBuilder는 배킹 스토어 같은 문자의 배열을 사용한다. 간단한

StringBuilder sb = new StringBuilder() ; 
sb.Append(GetSomeEnormousString()) ; 

sb[ sb.Length - 2 ] = '*' ; 

당신을해야합니다.

페이징 관련 작업 외에 직접 메모리 액세스입니다.