noskilled
30-10-2006, 09:07
Salve a tutti, ho da poco cominciato a studiare java all'universita, le difficolta non mancano e spesso anche il supporto dedicato alle maticole suppone un po troppo da chi di programmazione conosce magari solo linguaggi di markup :(
Fortunatmente esiste la rete e in particolare HWU :)
Il mio problema potrà sembrare a molti di voi scontato ma sta diventando per me un incubo, passo percio a descrivervelo:
L'esercizio in questione prevede di ricevere in input una stringa e di emettere in out la stessa stringa corredata di cornice di asterischi.
Fin qui tutto ok eccovi il codice :
import prog.io.*;
class Cornice {
public static void main(String[] args) {
//predisposizione dei canali di comunicazione
ConsoleInputManager in = new ConsoleInputManager();
ConsoleOutputManager out = new ConsoleOutputManager();
//le righe utilizzate per la cornice
String rigaAsterischi = "********************" +
"********************" +
"********************" +
"********************"; //80 asterischi in totale
String rigaBianca = " " +
" " +
" " +
" "; //80 spazi in tutto
String frase;
int lunghezza;
out.println();// riga vuota
frase = in.readLine("Inserisci una frase: ");//immissione input
lunghezza = frase.length();
//costruzione delle stringhe
String rigaCornice, rigaIntermedia, rigaTesto, spazi;
rigaCornice = rigaAsterischi.substring(0, lunghezza + 6);
spazi = rigaBianca.substring(0, lunghezza + 4);
rigaIntermedia = "*" + spazi + "*";
rigaTesto = "* " + frase + " *";
//visualizzazione della cornice
out.println();
out.println(rigaCornice);
out.println(rigaIntermedia);
out.println(rigaTesto);
out.println(rigaIntermedia);
out.println(rigaCornice);
out.println();
}
}
Il codice è corredato di classi e metodi particolari progettati per il corso, per il seguente esercizio mi è dato di usare le seguenti classi:
ConsoleOutputManager => classe di riferimento per il dispositivo di out
ConsoleInputManager => classe di riferimento per il dispositivo di input
String => classe di riferimento per le stringhe
La classe string mette a sua volta a disposizione i metodi:
.substring() [per estrarre un determinato numero di caratteri dalla stringa]
.lenght() [restituisce un intero rappresentante il numero di caratteri che compongono il riferimento all'oggetto stringa che utilizza il metodo]
Ed ora ecco la consegna :
L'output fornito dalla classe cornice è allineato a sinistra sullo schermo. Modificare il metodo main in modo che l'output risulti centrato orizzontalmente (si supponga di avere uno schermo di 80 colonne; la divisione tra interi è indicata dall'operatore /)
Qui casca l'asino, sono due settimane che cerco di trovare una soluzione a questo esercizio maledetto (tra l'altro l'unico ancora irrisolto) :muro:
Spero di avervi fornito tutto quello di cui avete bisogno per farvi un idea.
Grazie mille per qualsiasi supporto vogliate fornirmi.
NoskD
Fortunatmente esiste la rete e in particolare HWU :)
Il mio problema potrà sembrare a molti di voi scontato ma sta diventando per me un incubo, passo percio a descrivervelo:
L'esercizio in questione prevede di ricevere in input una stringa e di emettere in out la stessa stringa corredata di cornice di asterischi.
Fin qui tutto ok eccovi il codice :
import prog.io.*;
class Cornice {
public static void main(String[] args) {
//predisposizione dei canali di comunicazione
ConsoleInputManager in = new ConsoleInputManager();
ConsoleOutputManager out = new ConsoleOutputManager();
//le righe utilizzate per la cornice
String rigaAsterischi = "********************" +
"********************" +
"********************" +
"********************"; //80 asterischi in totale
String rigaBianca = " " +
" " +
" " +
" "; //80 spazi in tutto
String frase;
int lunghezza;
out.println();// riga vuota
frase = in.readLine("Inserisci una frase: ");//immissione input
lunghezza = frase.length();
//costruzione delle stringhe
String rigaCornice, rigaIntermedia, rigaTesto, spazi;
rigaCornice = rigaAsterischi.substring(0, lunghezza + 6);
spazi = rigaBianca.substring(0, lunghezza + 4);
rigaIntermedia = "*" + spazi + "*";
rigaTesto = "* " + frase + " *";
//visualizzazione della cornice
out.println();
out.println(rigaCornice);
out.println(rigaIntermedia);
out.println(rigaTesto);
out.println(rigaIntermedia);
out.println(rigaCornice);
out.println();
}
}
Il codice è corredato di classi e metodi particolari progettati per il corso, per il seguente esercizio mi è dato di usare le seguenti classi:
ConsoleOutputManager => classe di riferimento per il dispositivo di out
ConsoleInputManager => classe di riferimento per il dispositivo di input
String => classe di riferimento per le stringhe
La classe string mette a sua volta a disposizione i metodi:
.substring() [per estrarre un determinato numero di caratteri dalla stringa]
.lenght() [restituisce un intero rappresentante il numero di caratteri che compongono il riferimento all'oggetto stringa che utilizza il metodo]
Ed ora ecco la consegna :
L'output fornito dalla classe cornice è allineato a sinistra sullo schermo. Modificare il metodo main in modo che l'output risulti centrato orizzontalmente (si supponga di avere uno schermo di 80 colonne; la divisione tra interi è indicata dall'operatore /)
Qui casca l'asino, sono due settimane che cerco di trovare una soluzione a questo esercizio maledetto (tra l'altro l'unico ancora irrisolto) :muro:
Spero di avervi fornito tutto quello di cui avete bisogno per farvi un idea.
Grazie mille per qualsiasi supporto vogliate fornirmi.
NoskD