2011-01-25 46 views
1

我想顯示在GridView的產品的描述後,但我想只顯示15在同一行字,我想以後15個字符,我已經寫countchar功能打破它如下:如何添加<br>字符串計數的特定字符

public int CountChars(string value) 
{ 

    bool lastWasSpace = false; 

    foreach (char c in value) 
    { 
     result++; 
     lastWasSpace = false; 
    } 
    return result; 
} 

,並呼籲功能:

string description="sdfsdfsd sdfsdf sdfsdf asdfsa dfsda safsaf sdfdf sdfs sdfsdf sdff sdf "; 

CountChars(description); 

,我要檢查:

if(result>15) 
{ 
after every 15 characters i want to break the line. 
} 

請告訴我如何做到這一點。

+0

值是char陣列? – Neo 2011-01-25 11:29:29

+0

我想你「CountChars」是錯誤的,lastWasSpace永遠是假的,從來沒有讀過。結果未被聲明。 – Guillaume 2011-01-25 11:34:19

+0

你要添加的
在一個字的中間? – GvS 2011-01-25 11:45:17

回答

0
public string AddSpaces(string value) { 
    int result = 0; 
    string new_value = ""; 
    foreach (char c in value) 
    { 
     result++; 
     new_value += c.ToString(); 
     if (result == 15) { 
      new_value += "<br />"; 
      result = 0; 
     } 
    } 
    return new_value; 
}
0
if (value.Length > 15) 
{ 
    StringBuilder sb = new StringBuilder(); 
    for (i = 0; i < value.Length; i+=15) 
     sb.Append(value, i, Math.Min(value.Length - i, 15)).Append("<br/>"); 
    value = sb.ToString(); 
} 

未測試

0

使用方法發現here(分割字符串)

string str = "111122223333444455"; 
int chunkSize = 4; 
string tmp = String.Join("<br />", str.ToCharArray().Select((c, i) => new { Char = c, Index = i }).GroupBy(o => o.Index/4).Select(g => new String(g.Select(o => o.Char).ToArray())).ToList()); 
Console.WriteLine(tmp); 

它產生以下結果:

1111<br />2222<br />3333<br />4444<br />55 
相關問題