2011-04-06 4 views
0

트위터 메시지를 처리해야하는 응용 프로그램을 작성하고 있습니다. 30 문자에서 문자열을 자르는 기능이 필요합니다. 30 인덱스의 문자가 공백을 찾지 못하면 공백을 발견하고 \ n을 추가하여 멀티 라인으로 표시 할 때까지 다시 계산됩니다. 내 신청서에.C# 특정 길이의 줄 바꿈을 추가하기 위해 문자열 편집

여러 접근법을 시도했지만 C#에 대한 지식이 아직 놀라운 것은 아닙니다. 나는 기본적인 것이있다.

string[] stringParts = new string[5]; 
string temp = jsonData["results"][i]["text"].ToString(); 
int length = 30; 

for(int count = length-1; count >= 0; count--) 
{ 
    if(temp[count].Equals(" ")) 
    { 
     Debug.Log(temp[count]); 
    } 
} 

나는 Split을 사용하여 배열에 결과를 추가한다고 생각했지만 작동시키지 못했습니다.

+0

무엇이 당신의 질문입니까? – Oded

+0

코드가 작동하지 않음 – gunwin

답변

7

더 나은 방법은 공백으로 분할하고 30 자보다 짧은 배열 행을 재구성하는 것입니다. 내가 공백 블록의 마지막 위치뿐만 아니라 공백이 아닌 첫 번째 문자의 위치를 ​​결정하기 위해 정규 표현식을 사용

string[] words = myString.Split(' '); 
StringBuilder sb = new StringBuilder(); 
int currLength = 0; 
foreach(string word in words) 
{ 
    if(currLength + word.Length + 1 < 30) // +1 accounts for adding a space 
    { 
     sb.AppendFormat(" {0}", word); 
     currLength = (sb.Length % 30); 
    } 
    else 
    { 
     sb.AppendFormat("{0}{1}", Environment.NewLine, word); 
     currLength = 0; 
    } 
} 
+0

첫 번째 줄마다 두 줄 밖에없는 것을 제외하고는 거의 작동합니다. 이 시점에서 Stringbuilder를 읽고 더 나은 처리 방법을 얻으십시오. – Zophiel

+0

@ Zophiel - 코드 샘플이 수정되었습니다. – Oded

+0

그건 그렇고 AppendFormat입니다.) – Zophiel

0

: 여기

내가이 (안된를) 할 것입니다 방법의 개요입니다 그 다음입니다.

관련 문제