Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253

    Valore Null su array java

    Ciao a tutti,

    ho dichiarato un array di tipo stringa che viene costruito a partire dallo split di un parametro fatto di più stringhe separate da virgole, come riportato sotto.


    String[] ValueList = Valore.split(",")

    il mio quesito è il seguente:

    dato che la stringa Valore viene popolata da campi di testo di una form su pagina jsp che possono anche restare vuoti, potrei trovarmi in una condizione di questo tipo:

    Valore = ",0,ciao,..."

    Come faccio a impostare la condizione per la quale ValueList[0] è vuota?

    ho provato sia con ValueList.equals(null) sia con ValueList.equals("") ma in entrambi i casi tale condizione non viene mai soddisfatta anche a fronte di test con ValueList[0] vuoto,perciò deduco che un qualche valore lo trovi...

    Chi mi aiuta?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Valore Null su array java

    Originariamente inviato da referee84
    Come faccio a impostare la condizione per la quale ValueList[0] è vuota?
    ValueList[0].equals ("")

    oppure

    ValueList[0].length() == 0

    Però occhio che in base alla stringa di input, potresti anche avere un array vuoto, senza elementi. Se la stringa in Valore fosse ",,,", l'array è vuoto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253
    Niente da fare, se tento di arrivarci con il .lenght mi dà errore!

    ma non demordo e continuerò a provare!

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    E qual è l'errore che ti viene restituito?
    Hai controllato, come ti ha fatto notare andbin, che l'array non sia nullo?
    codice:
    String[] ValueList = Valore.split(",")
    if ((ValueList != null) && (ValueList.length > 0)) {
       ... // Puoi procederecon gli altri test
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    esatto se il valore è nullo equals restituisce null pointer exception devi fare il controllo che ti ha indicato LeleFT:

    if (ValueList != null)

    carlo
    Forex: forum dedicato al mercato del trading forex

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253
    ValueList non è mai nullo perchè la jsp di partenza contiene un campo di testo (che può restare vuoto) e una combo box il cui valore nel caso di campo vuoto è 0.

    Quindi nel caso di campo di testo vuoto il mio array esce fuori così:
    ",0"
    come già detto prima.

    Il controllo quindi va fatto su ValueList oppure su ValueList[0]??

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da referee84
    ValueList non è mai nullo perchè la jsp di partenza contiene un campo di testo (che può restare vuoto) e una combo box il cui valore nel caso di campo vuoto è 0.

    Quindi nel caso di campo di testo vuoto il mio array esce fuori così:
    ",0"
    come già detto prima.
    Se la stringa su cui fai split è ",0", allora avrai in output un array con 2 stringhe: la prima è una stringa vuota "" e la seconda è "0".

    Quindi: if (ValueList[0].equals (""))
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253
    Originariamente inviato da andbin
    Se la stringa su cui fai split è ",0", allora avrai in output un array con 2 stringhe: la prima è una stringa vuota "" e la seconda è "0".

    Quindi: if (ValueList[0].equals (""))
    il problema è che, giustamente, ValueList[0].equals("") è la prima cosa che ho provato a fare, eppure non funziona!

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253
    e se vi dicessi che il problema non era il .equals ma la stringa che gli passavo x costruire la query SQL in base ai diversi valori dell'array che fate? Mi uccidete!!!

    Un ultimo aiutino per favore...

    dato utilizzo Rs.next() per controllare se un recordset è vuoto, come faccio a tornare al record precedente se la query mi restituisce almeno 1 record? altrimenti ne perdo sempre uno!

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    No: non puoi perdere il record... RS.next() deve sempre essere la prima istruzione.
    In questo modo, essa si posiziona sul primo record.
    Esempio:
    codice:
    ResultSet rs = ...;
    
    while( rs.next() ) {
       // Alla prima iterazione sei sul primo record.
    }
    Questo perchè, quando il ResultSet viene creato, il puntatore viene posizionato prima del primo record. La chiamata a next() lo posiziona sul primo record (se esiste).

    Esistono anche i metodi first() e last() per muovere il cursore rispettivamente sul primo e sull'ultimo record, ma non sempre sono ammesse: non tutti i ResultSet sono bidirezionali.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.