2010-03-16 10 views
1

J'ai une longue chaîne de commentaires que je voudrais diviser en plusieurs lignes.Scinder une chaîne en plusieurs lignes

Il est actuellement affiché comme <%= Html.Encode(item.important_notes) %> j'ai joué avec l'aide .Substring pour diviser, mais ne peut pas comprendre comment l'empêcher de se fendre au milieu d'un mot. Au lieu des caractères 1-100 sur la ligne 1 et 101-200 sur la ligne 2, je voudrais faire quelque chose comme le caractère 1 à travers le dernier espace avant le caractère 100 sur la ligne un. Ce caractère à travers le dernier espace avant les 100 caractères suivants sur la ligne 2, etc

Quelle est la meilleure façon de le faire?

EDIT: en utilisant ASP.NET MVC

+0

Prenez soin de nommer un langage de programmation? Parlez-vous de JSP ici? –

+0

La langue serait ASP.net mvc par l'apparence de celui-ci ... – Rippo

+1

Est-il pas possible de laisser votre feuille de style html dicter la largeur du texte? –

Répondre

1

J'utiliserais une combinaison de sous-chaîne et lastindexof. Vous obtenez le dernier index combiné avec un nombre pour obtenir le premier espace après votre point d'arrêt.

StringBuilder sb = new StringBuilder(); 
while (base.Length > 100) 
{ 
    if (!base.Contains(" ")) { break; 
    sb.Append(base.Substring(0, base.Substring(0, 100).LastIndexOf(" "))); 
    //code to trim down base 
    sb.Append(/*newline*/); 
} 
sb.Append(base); 

Ecrit ad hoc, mais vous avez l'idée.

+0

Je ne l'ai pas fait exactement de cette façon, mais un combo de Substring et LastIndexOf a fait l'affaire. Merci. – RememberME

+0

soyez également au courant des doubles espaces .... – Rippo

0

Sans pouvoir parler plus précisément à votre question, je vous suggère de regarder dans les expressions régulières. Les expressions régulières sont capables de gérer facilement des modèles de texte complexes. Vous pouvez avoir une fonction split qui prend juste une telle expression régulière et retourne un tableau de Strings.

Questions connexes