Newsgroup: it.comp.java
Titolo: Piccolo problema per neofiti (stringhe)

Ho un JtextPane che mi deve visualizzare una stringa di massimo X
caratteri, se tale stringa dovesse essere più lunga deve troncare
all'ultima parola. Considerando che dalla stringa vengano rimossi
tutti gli spazi duplicati come faccio a raggiungere il mio obiettivo?
Vi faccio vedere il contesto:
private SmoothTextPane manageDescription(Item item){
		String descrizione = item.getDescription();
		String cuttedDescr;
		if (descrizione.length() < 450) {
		      // Banalmente se la stringa è inferiore ai 450 caratteri la
setto priva di spazi
                      newsDescription.setText
(StringHelper.removeMultipleSpaces(descrizione));
		}else {
cuttedDescr = descrizione.substring(0, 450);
			newsDescription.setText(cuttedDescr+ "...");
			}
	return newsDescription;
	}

 tutti gli spazi duplicati come faccio a raggiungere il mio obiettivo?
Se ho capito bene devi:
1. rimuovere tutti gli spazi doppi (non ho capito se sempre o in 
funzione della lunghezza della stringa);
2. verificare se la stringa � pi� lunga di x, altrimenti restituirla;
3. se � pi� lunga troncare prima dell'ultima parola con posizione <= x e 
restituirla.
Corretto?
Nel qual caso il punto 1. l'hai gi� risolto con "removeMultipleSpaces", 
il 2. � banale, il 3. lo risolvi con un y=descrizione.lastIndexOf(" ", 
x) e relativo substring(0, y) (come gi� hai fatto ma con indice finale 
variabile).
int lastIndexOf(String str, int fromIndex)
Returns the index within this string of the last occurrence of the 
specified substring, _searching backward_ starting at the specified index.
(sottolineatura mia)
Trova l'ultimo spazio bianco, ergo l'ultima parola, a partire 
dall'indice passato muovendosi all'indietro.
Spero di esserti stato d'aiuto.
Ciao.

Per le operazioni con le stringhe ti consiglio l'ottima classe StringUtils 
della libreria apache commons lang scaricabile qui:
http://commons.apache.org/lang/
La classe StringUtils di questa libreria contiene un sacco di funzioni 
utilissime per la manipolazione delle stringhe (e sono tutte "nullsafe", 
cio� funzionano senza problemi anche con oggetti String uguali a null).
Qui trovi la relativajavadoc:
http://commons.apache.org/lang/api/org/apache/commons/lang/StringUtils.html
Per esempio, per rimuovere l'ultima parola da una stringa puoi utilizzare il 
seguente metodo:
substringBeforeLast(tuaStringa, " ")
Ciao,
D.

 Spero di esserti stato d'aiuto.
Non mi sei stato di aiuto mi hai praticamente salvato, ti devo un caff�..
Ps: Sono davvero da poco su Java spero di imparare un mucchio di cose mi 
affascina molto.
Grazie mille.
Ciro

 substringBeforeLast(tuaStringa, " ")
Esiste la possibilitï¿œ di vedere il sorgente? Perchï¿œ sono costretto ad 
usare librerie standard ï¿œ una specifica del progetto a cui lavoro.
Ciro

> Esiste la possibilit� di vedere il sorgente?
Certo che si, il progetto � open source.
I sorgenti li puoi scaricare da questa pagina (dalla sezione "Source")
http://commons.apache.org/downloads/download_lang.cgi
oppure usando direttamente questo link:
http://mirror.soluzionisis.com/apache/commons/lang/source/commons-lang-2.4-src.zip
D. 

 D.
Grazie mille, ho guardato il sorgente e mi sono fatto una cosa
personalizzata che funziona discretamente bene.
Approfitto per chiederti un'altra cosa, secondo te è possibile mettere
un limite alle righe visualizzabili di un JTextPane?
Ho trovato qui il modo per calcolare il numero di righe scritte
facendo uso della posizione del Caret ma non ho trovato nulla che mi
potesse aiutare per porre un limite alle stesse.
http://forums.sun.com/thread.jspa?threadID=613385
Ps:E' la prima volta che scrivo qui ma sono debitore già di due
caffè..se passate da Bologna non fate complimenti.  ;-)
Ciro

 un limite alle righe visualizzabili di un JTextPane?
Sorry ma non conosco swing, non so come aiutarti.
D.