2013-03-19 5 views
1

텍스트 기반 모험에서 사용하는 방법을 만들었습니다. 그것은 훌륭하게 작동하지만 문제는 단어를 원하는대로 나눌 때 문제가된다는 것입니다. \ n. 배열의 char 139 앞에있는 마지막 공간 다음에 \ n 바로 쓸 수있는 방법을 찾아야합니다. 문자열이 세 개 이상의 줄이 포함다른 char 앞에 char 배열의 공백을 찾으려면 어떻게해야합니까?

static void RPGWrite(string write) 
    { 
     char[] writearray = write.ToCharArray(); 
     int writearraycount = writearray.Count(); 
     for (int x = 0; x < writearraycount; x++) 
     {     
      Console.Write(Convert.ToString(writearray[x])); 
      if ((x > 1) && (x % 139 == 0)) 
       Console.Write("\n"); 
      System.Threading.Thread.Sleep(30); 
     } 
    } 
+0

어떤 경우 : 여기 내 코드? : D –

+1

당신은'말장난 '을 의미합니까? 이렇게 : http://stackoverflow.com/a/3961365/16959 –

+0

그것은 x를 139로 나누고 나머지가 0인지 검사합니다. 행 수가 무제한이면 작동합니다. –

답변

0
static void RPGWrite(string write) 
    { 
     int i = 0; 
     StringBuilder sb = new StringBuilder(); 
     while (i < write.Length) 
     { 
      if(i + 139 < write.Length) 
      { 
       string part = write.Substring(i, i + 139); 
       int lastSpace = part.LastIndexOf(' '); 
       sb.Append(write.Substring(i, i + lastSpace) + System.Environment.NewLine; 
       i += lastSpace; 
      } 
      else 
      { 
       sb.Append(write.Substring(i)); 
       break; 
      } 
     } 
     Console.Write(sb.ToString()); 
    }