Google
[IT] Java - Troncamento testo ad un certo numero di caratteri massimo, senza rompere le parole

Java - Troncamento testo ad un certo numero di caratteri massimo, senza rompere le parole


Magari questa funzione potrebbe essere ottimizzata, ma non mi interessa farlo e non ne ho voglia. Cosi' funziona, usate il codice come volete. Esempio:
"La vispa Teresa girava per strada fumando l'impossibile"
Questa frase, troncata alla 12ma lettera, dovrebbe diventare
"La vispa"
per effetto del troncamento alla parola precedente (non si vogliono parole spezzate).
  /**
   * Tronca il testo passato ad una lunghezza inferiore o uguale a "limite".<br>
   * La lunghezza risulta inferiore nel caso il valore "limite" non coincida
   * con la fine di una parola. <b>Il testo viene troncato sempre in coincidenza
   * della fine di una parola</b>.<br>
   * Attenzione! Elimina gli spazi iniziali e finali (trim).
   * @param testo e' il testo da troncare
   * @param limite e' il numero di caratteri da tenere (al massimo)
   * @return Il testo troncato nel caso normale; la stringa vuota se limite=0;
   * la stringa depurata dagli spazi iniziali e finali  se limite<0 oppure
   * il limite e' maggiore della lunghezza della stringa.
   */
  public String TroncaAllaParolaPrecedente(String testo, int limite)
  {
    String temp = testo;
    if (limite==0) temp = "";
    if (limite>0)
    {
      if (temp.length()>limite)
      {
        char frontiera = temp.charAt(limite);
        temp = temp.substring(0,limite);
        if (frontiera!=' ')
        {
          int nuovo_limite = temp.lastIndexOf(" ");
          if (nuovo_limite>=0) temp = temp.substring(0,nuovo_limite);
          else temp = "";
        }
      }
    }
    return temp.trim();
  }
Home Giansante Gabriele (c) 1999-2006