CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: complicazio con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 10 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 4 su 4
Discussione:

aiuto array java

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiano


    Registrato dal
    Jan 2012
    Messaggi
    299

    Ringraziamenti
    107
    Ringraziato 15 volte in 10 Posts
    Predefinito

    aiuto array java

    salve a tutti, qualcuno che conosce il java potrebbe aiutare me, un novellino universitario? avevo creato una classe con un array di grandezza 4 a cui ho assegnato in [0] e [1] i valori rispettivamente 1 e 2, e poi creato con un for un algoritmo che completasse mettendo 3 e 4 nelle altre 2 allocazioni, ma, ahimè, pur non trovando errori di compilazione in cmd mi da scritte totalmente diverse... poi, giusto per esercitarmi, ho inglobato tutto in un if, se alla domanda rispondevo S, allora mi faceva vedere quel lavoretto (mal andato) con gli array, altrimenti no. però qualsiasi cosa metta mi salta direttamente in else... qualcuno può aiutarmi e corregermi eventuali errori di fondo? in allegato il zip del codice..array.zip

  2.  
  3. #2
    Baby Droid L'avatar di AlexMercer


    Registrato dal
    Nov 2012
    Località
    Highlands di Varese
    Messaggi
    7
    Smartphone
    Samsung Galaxy Note

    Ringraziamenti
    4
    Ringraziato 8 volte in 7 Posts
    Predefinito

    Ciao,
    l'errore, abbastanza comune in verità (lo faccio spesso anche io :P). L'operatore == per i tipi primitivi del linguaggio di programmazione (come int, char ecc..) fa la comparazione sul valore; per le classi, invece, compara la cella di memoria. Nel tuo caso risposta==("S") e risposta==("N") risultano sempre false perché la cella di memoria che è ovviamente diversa (non mi dilungo troppo su questo aspetto, se vuoi lo spiego meglio). Per fare una comparazione di stringhe (ma più in generale tra le classi) devi utilizzare il metodo equals(Object arg0). Per esempio se scrivi "S".equals(risposta) la funzione restituirà true se risposta contiene il carattere S (maiuscolo), false altrimenti. Se vuoi fare un confronto case insensitive puoi usare equalsIgnoreCase(String arg0), per esempio: "S".equalsIgnoreCase(risposta) restituirà true se risposta è S o s, false negli altri casi.
    Spero di esser stato chiaro.
    Ciao
    Alex Mercer

    N.B.
    ho sempre richiamato il metodo equals su una costante, nulla ti vieta di mettere risposta.equals("S") ma questo potrebbe generare un NullPointerException nel caso di risposta == null, se lo usi come ho detto io no
    Ultima modifica di AlexMercer; 26-11-12 alle 14:26 - Motivo: discorso un pò più generico e aggiunta del funzionamento su tipi primitivi

  4. Il seguente Utente ha ringraziato AlexMercer per il post:

    Vikingoth (30-11-12)

  5. #3
    Androidiano


    Registrato dal
    Jan 2012
    Messaggi
    299

    Ringraziamenti
    107
    Ringraziato 15 volte in 10 Posts
    Predefinito

    mmm mettendo if("S".equals(risposta)) mi da corretto invece per la questione dell'array come mai da quella schifezza e non ciò che vorrei fare? :/ scusami se comemtto errori banalissimi ma studio java da... 1 mese? :/

  6. #4
    Baby Droid L'avatar di AlexMercer


    Registrato dal
    Nov 2012
    Località
    Highlands di Varese
    Messaggi
    7
    Smartphone
    Samsung Galaxy Note

    Ringraziamenti
    4
    Ringraziato 8 volte in 7 Posts
    Predefinito

    Ciao,
    sono errori che facevo anch'io quando mi sono approcciato a questo linguaggio , quindi non scusarti. Allora, quando scrivi System.out.println(Object) la funzione stampa su console quello che l'oggetto restituisce al metodo toString() (è un metodo che ha l'oggetto Object cioè il padre di tutti gli oggetti Java). Questa funzione, se non sovrascritta, stampa la cella di memoria dell'oggetto (che è praticamente useless per chiunque ). Per stampare un array esistono sostanzialmente 2 modi, uno un pò classico e uno invece introdotto da poco (nella versione 6 di Java se non erro).
    Il primo è
    codice:
    for(int index=0;index<unarrayf.length; i++)
         System.out.println(unarrayf[index]);
    che è praticamente la stessa cosa che hai usato per inserire gli ultimi 2 valori dell'array
    L'altro metodo consiste nel usare l'operatore :, che permette di listare un oggetto iterabile, così
    codice:
    for(int numero : unarrayf)
         System.out.println(numero);
    Questo metodo funziona benissimo per leggere i valori, un pò meno bene per scriverli (in pratica funziona solo per gli oggetti, non per primitivi).
    Se hai altre domande chiedi pure
    Ciao
    Alex Mercer
    Ultima modifica di AlexMercer; 29-11-12 alle 08:46 - Motivo: corretto quote in code

  7. Il seguente Utente ha ringraziato AlexMercer per il post:

    Vikingoth (30-11-12)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy