Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    20

    Verificare elementi in un vector

    salve a tutti ragazzi vi volevo infastidire un' ultima volta
    ho questo vector risultato di una query

    codice:
    for(int k=1;k<6;k++){
            		
               
    	    		String query= "SELECT idora FROM prenotazione WHERE idgiorno =("+k+")  ";
                Vector ss1 =  st.getInstance().eseguiQuery(query);
    
    }
    mi da ovviamente cinque vector
    e per ogniuno di essi vorrei verificare il contenuto (numeri) tale che tra di loro siano assenti almeno due numeri consecutivi ad esempio:

    1
    2
    5
    6

    manca 3-4 che sarebbe una pausa di due ore...
    come potrei implementarlo? grazie

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    codice:
    int [] elements = {1, 2, 5, 6};
    for (int element : elements) { 		           
        String query = "SELECT idora FROM prenotazione WHERE idgiorno = " + element;
        Vector ss1 =  st.getInstance().eseguiQuery(query);
    }
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    20
    forse non mi sono spiegato bene, o non ho capito quello che mi hai scritto.
    lasciando perdere il for per la query...
    questo vettore

    Vector ss1 = st.getInstance().eseguiQuery(query);

    mi da una lista di valori tra 1-10.
    ad esempio
    1
    2
    3
    4
    5
    oppure
    5
    6
    7
    9

    vorrei un metodo che mi avvisi che non è presente una pausa di due ore (ovvero un salto di due numeri consecutivi) per ogni vector per poi generare un messaggio
    quindi
    1
    2
    3
    6
    7
    va bene perchè non cè 4 e ne 5

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da slsamg
    forse non mi sono spiegato bene, o non ho capito quello che mi hai scritto.
    lasciando perdere il for per la query...
    questo vettore

    Vector ss1 = st.getInstance().eseguiQuery(query);

    mi da una lista di valori tra 1-10.
    ad esempio
    1
    2
    3
    4
    5
    oppure
    5
    6
    7
    9

    vorrei un metodo che mi avvisi che non è presente una pausa di due ore (ovvero un salto di due numeri consecutivi) per ogni vector per poi generare un messaggio
    quindi
    1
    2
    3
    6
    7
    va bene perchè non cè 4 e ne 5

    Avevo capito male io scusami ^^'

    Beh, se il vector è ordinato potresti scorrerlo e sottrarre ogni numero col precedente e vedi subito se c'è un buco
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    20
    il fatto è che non perforza deve essere ordinato...se qualcuno ha qualche esempio o metodo da applicare..Grazie

  6. #6
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Per questo basterebbe aggiungere ORDER BY idora alla query.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    20
    grazie! ho aggiunto order by

    codice:
    for(int k=1;k<6;k++){
     String query= "SELECT idora FROM prenotazione WHERE idgiorno =("+k+") ORDER BY idora "; Vector ss1 = st.getInstance().eseguiQuery(query); 
    
    int val=0,count=0,corrente=0; 
    Integer intVal,intVal2; //primo elemento 
    intVal=Integer.parseInt((String)ss1.elementAt(0)); 
    val=intVal.intValue(); 
    corrente=val; 
    for(int g=1; g<ss1.size(); g++)
     { 
    intVal=Integer.parseInt((String)ss1.elementAt(g)); 
    val=intVal.intValue(); ss1.add(val);
    
     if(corrente==val-g) { 
    corrente=val-g; count++;
    
     if(count>2){ 
    String message = ("non è prensente la pausa nel giorno " +k ); JOptionPane.showMessageDialog(null, message);
    ho preso spunto da un codice online ma purtroppo mi da errore ....

  8. #8
    Che errore?
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    20
    dalla linea 196 che sarebbe questa intVal=Integer.parseInt((String)ss1.elementAt(0));


    Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String
    at it.unisalento.dao.PrenotazioneDAO.verificapausa(Pr enotazioneDAO.java:196)
    ......

  10. #10
    Il problema però non si capisce se l'errore proviene dal cast dello string o dell'int
    prova a dividere i due
    codice:
    String elem=ss1.elementAt(0).toString();
    intVal=Integer.parseInt(elem);
    cmq il problema di cast significa che vuoi castare qualcosa che non è possibile trasformare.

    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

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.