Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Fondamenti di architettura e programmazione
 
[Java] Allineamento stringhe
Clicca QUI per vedere il messaggio nel forum
zyx
Come faccio ad allineare delle stringhe
ad esempio

io ho una stringa a questo punto
stringa (poi di fianco ci metto u carattere di newline)
come faccio poi a stampare un altra stringa sotto a questa????

Joda
Originally posted by zyx
Come faccio ad allineare delle stringhe
ad esempio

io ho una stringa a questo punto
stringa (poi di fianco ci metto u carattere di newline)
come faccio poi a stampare un altra stringa sotto a questa????


:pensa: puoi spiegare meglio ? (anche con esempio grz)

Brk
Scusa, hai già fatto il metodo "esegui" di Selezione? Sapresti dirmi come mettere le eccezioni in quel metodo??? L'ho fatto, ma non so dove piazzare InvalidVariableException ed INvalidOperandException...

zyx
scusa Ho un metodo toString, questo metodo ritora una stringa e una newline "\n". Solo che questa \n mi manda a capo all'inizio della linea, io invece voglio che mi mandi a capo ma che inizi allineato con la stringa superiore
stringa \n(La stringa sotto voglio che inizi dove inizia quella sopra)
stringa2 \n(e non)
stringa3

zyx
A scriverlo l'esempio non viene bene. Immagina che il backslash rappresenti uno spazio vuoto
\\stringa \n(La stringa sotto voglio che inizi dove inizia quella sopra)
\\stringa2 \n(e non)
stringa3

Joda
Originally posted by zyx
scusa Ho un metodo toString, questo metodo ritora una stringa e una newline "\n". Solo che questa \n mi manda a capo all'inizio della linea, io invece voglio che mi mandi a capo ma che inizi allineato con la stringa superiore
stringa \n(La stringa sotto voglio che inizi dove inizia quella sopra)
stringa2 \n(e non)
stringa3


un modo srebbe che tu inserisca un numero di spazi pari alla lunghezza della stringa precedente e poi inserisca la stringa successiva.

zyx
e ma il problema che gli spazi variano, Possono essere dapprina 0, poi magari sono 2 e poi 4. Cioè variano, ho bisogno di un metodo che mi allinei con la stringa superiore.

Joda
controlla nella documentazione Java ... i metodi messi a disposizione dalla classe String e StringBuffer

Se fosse, io prenderei in considerazione anche la ricorsione.

0m4r
Originally posted by zyx
e ma il problema che gli spazi variano, Possono essere dapprina 0, poi magari sono 2 e poi 4. Cioè variano, ho bisogno di un metodo che mi allinei con la stringa superiore.


si ma prima di stampare la stringa uno tu conosci quanti spazi hai prima no? E quindi non li puoi contare e poi "attaccare" alla stringa che segue?

zyx
E ma come faccio a conoscerli. Cioè fai conto che un metodo toString chiami altri tre metodi toString di altre classi. Nel codice del primo di questi altri tre, viene restituito qualcosa spostato di due spazi verso destra e poi c'è un carattere di newline, ora io voglio che gli altri due metodi toString vengano "scritti" sotto a questo, e non all'inizio della riga.

zyx
0m4r ma tu per caso conosci una certa Valeria o Claudia di cologno?

Joda
beh ma scusa se è così non puoi fare in modo che durante la cascata delle chiamate, la stringa sia mammano identata correttamente ? tanto penso che l'implementazione del codice non sia obbligatorio, è lasciato a voi, quindi cosa il metodo toString faccia non interessi più di tanto, basta che ritorni una stringa formattata in una cerca maniera prestabilita.

zyx
si hai ragione ma come faccio ad identarla man mano. Perchè per esempio se tu hai letto il testo: Quando faccio il toString di Selezione l'identazione dell'if è fatta bene solo che non tengo conto che quest'istruzione ad esempio"selezione1" potrebbe far parte di un'altra istruzione "selezione2" quindi tutto il blocco toString di "selezione1"deve essere identato di due spazi avanti rispetto a "selezione2", e poi le singole istruzioni(di selezione1) da svolgere identate di altri due spazi.

Joda
Originally posted by zyx
si hai ragione ma come faccio ad identarla man mano. Perchè per esempio se tu hai letto il testo: Quando faccio il toString di Selezione l'identazione dell'if è fatta bene solo che non tengo conto che quest'istruzione ad esempio"selezione1" potrebbe far parte di un'altra istruzione "selezione2" quindi tutto il blocco toString di "selezione1"deve essere identato di due spazi avanti rispetto a "selezione2", e poi le singole istruzioni(di selezione1) da svolgere identate di altri due spazi.



1- non riesci a tenerne memoria?

2- se non ci riesci, puoi fare in modo che una volta che ha tutta la stringa prima di stamparla la analizzi e sfruttando il fatto che ad esempio l'if ha un inizio ed una fine la indenti...

zyx
Ma alla fine non ce l'ho fatta

0m4r
Originally posted by zyx
0m4r ma tu per caso conosci una certa Valeria o Claudia di cologno?

Off-Topic:
non andiamo OT, ma non ti pare di essere un po' troppo generico?

zyx
i cognomi non li ricordo so che ieri davano una festa di compleanno. Alla fine non riesco ad allinearle le stringhe... come posso fare

Joda
Originally posted by zyx
i cognomi non li ricordo so che ieri davano una festa di compleanno. Alla fine non riesco ad allinearle le stringhe... come posso fare


Mi sorge il dubbio, o che hai implementato il metodo troppo rigidamente oppure non hai considerato la possibilità di un metodo ricorsivo, dato che dal testo mi era parso di capire che per i metodi e le classi aggiuntive era accettate.

zyx
Ma la tua idea sarebbe quella di costruire un metodo nelle varie classi che implementano istruzione il quale compito è quello di calcolare lo spazio che c'è tra l'inizio effettivo della riga e la stringa stessa? Se è così è un idea che anch'io avevo preso in considerazione ma come faccio a implementarlo se non tengo in memoria la stringa superiore(o meglio come faccio a tenerne memoria)

zyx
Ovviamenti poi utilizzare questo metodo in una toString(). e Anzi dichiararlo in "Istruzione" e implementarlo nelle sottoclassi...

Joda
Originally posted by zyx
Ma la tua idea sarebbe quella di costruire un metodo nelle varie classi che implementano istruzione il quale compito è quello di calcolare lo spazio che c'è tra l'inizio effettivo della riga e la stringa stessa? Se è così è un idea che anch'io avevo preso in considerazione ma come faccio a implementarlo se non tengo in memoria la stringa superiore(o meglio come faccio a tenerne memoria)


la mia idea era quella di creare un metodo ricorsivo privato che ritornasse la stringa identata, che richiamerei in toString().

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate