Thomas Bandt

Über mich | Kontakt | Archiv

Strings sinnvoll kürzen

Es kommt vor, dass man Texte kürzen muss, zum Beispiel bei geteaserten Darstellungen von Artikeln in einem Content Management System. Oft bleiben einem da zum Beispiel bei einem dreispaltigen Layout nur ein paar Zeichen übrig. Wenn die eigentlichen Texte aber mehrere hundert bis tausend Zeichen umfassen, muss man diese kürzen.

Wenn man nun keine Künstliche Intelligenz zur Hand hat, die versteht was in dem Text steht und ihn sinnvoll kürzt, so muss man das etwas rigoroser angehen: man nimmt sich einfach eine bestimmte Anzahl an Zeichen, die der Text nicht übersteigen darf, und schneidet den Rest einfach ab.

Dumm allerdings, wenn sich die entsprechende Stelle, wo der Text gekappt wird, mitten in einem Wort befindet. Aber zumindest das kann man wie nachfolgend dargestellt mit einem einfachen Mittel umgehen:

protected void Button1_Click(object sender, EventArgs e)
{
   if (longText.Text.Trim() != string.Empty)
   {
      if (longText.Text.Length > 255)
      {
      longText.Text = longText.Text.Substring(0, 255);
      int lastSpace = longText.Text.LastIndexOf(" ");
      if (lastSpace > -1 && lastSpace < 255)
      longText.Text = longText.Text.Substring(0, lastSpace);
      }
   }
}

Zuerst wird der Text entsprechend der Vorgabe, in diesem Fall 255 Zeichen, geteilt. Anschließend wird geschaut, wo sich im übrig gebliebenen Text das letzte Leerzeichen befindet - und nun wird der Text nochmals bis zu dieser Stelle gekürzt. Das verhindert zwar keine sinnentleerten Sätze, aber immerhin abgeschnittene Wörter.



« Zurück  |  Weiter »