2013-03-19 62 views
1

我已經創建了一個我在基於文本的冒險中使用的方法。它的效果很好,但問題在於它會在我想要的時候將詞語拆分爲\ n。我需要找到一種方法,以便在數組中的char 139之前的最後一個空格之後。 這裏是我的代碼:如何在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 – 2013-03-19 23:57:44

+1

你的意思是喜歡「自動換行」嗎?像這樣:http://stackoverflow.com/a/3961365/16959 – 2013-03-20 00:01:29

+0

它將x除以139,並檢查餘數爲0.它應該使用無限數量的行。 – 2013-03-20 00:01:57

回答

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()); 
    }