Programma java da int[] a stringa

obelix23
Scrivere un metodo stampaInteri che preso in ingresso un array di interi, lo stampi sullo schermo usando la notazione insiemistica.

Es: sia dato l'array contenente gli interi 2,3,1,5 e 10, il metodo dovrà stampare la seguente stringa:

{2, 3, 1, 5, 10}
come dovrei fare per inserire le virgole tra i vari numeri ??

Risposte
hamming_burst
Ciao,
non vedo tutta questa difficoltà.

Se è semplice stampa a linea di comando, con System.out.println risolvi tutto, se sai per concatenare dati stampabili basta utilizzare "+". :-)

obelix23
questo è quello che ho scritto.quando vado a compilarlo mi stampa { ,12,7,8,22,1,128} come posso eliminare lo spazio e la virgola prima del 12


public class Es3{
static String stampaInteri( int[] a){
String s = " ";
for (int i =0; i s =s+","+a;
return s;
}
public static void main(String[] args) {
int[] a = {12,7,8,22,1,128};
String s = stampaInteri(a);
System.out.println("{"+s+"}");
}
}

hamming_burst
Perchè fai tutto questo giro per stampare un array di interi?
La println è abbastanza potente per riconoscere un tipo intero e convertirtelo in string senza che tu faccia qualcosa.

Prova ad utilizzare print() invece che println() per non andare a capo durante la stampa, e nel ciclo for invece che salvare la stringa, stampala.
Invece per elimiare la "," che ti ritornerà all'inizio o alla fine prova ad usare il carattere backspace "\b" (in unicode controlla qual è il corrispondente dell'ascii). se no basta che interrompi il cliclo for al $n-1$-esimo intero, e stampa a "mano" l'ultimo intero senza virgola.

Prova :-)

obelix23
scusa ma non ho capito io ho appena iniziato a programmare con java

hamming_burst
semplicemente questo, rieditando il tuo codice:

public class Es3 {

    static void stampaInteri(int[] a) {

        System.out.print("{");
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + ",");
        }

        System.out.println("\u0008}");
    }

    public static void main(String[] args) {
        int[] a = {12, 7, 8, 22, 1, 128};
        stampaInteri(a);

    }
}


se hai dubbi chiedi pure :-)

Rggb1
O anche qualcosa tipo
    static void stampaInteri(int[] a) {

        System.out.print("{");
        for (int i = 0; i < a.length; i++) {
            if (i) System.out.print(", ");
            System.out.print(a[i]);
        }
    }


@ham_burst
Non molto portabile la tua soluzione, credo... ;)

hamming_burst
@ham_burst
Non molto portabile la tua soluzione, credo... ;)


mmm se è per il "\b" in unicode, mi faceva pensare pure a me, ma per sto esercizio mi pareva andare bene.
Se non è quello, cosa intendi?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.