Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    181

    [JAVA]Memorizzazione stringhe

    salve ragazzi,

    devo memorizzare in una struttura dati un certo numero di stringhe. Avevo pensato di usare un semplice vettore di stringhe ma, essendo il numero di stringhe da inserire variabile, ho pensato fosse meglio utilizzare un arraylist di stringhe.(viene inserita una stringa se viene rispettata una certa condizione..)

    Per visualizzare queste stringhe utilizzo un normale for in questo modo:

    for(int i=0; i<al.size(); i++ )
    out.println("

    "+al.get(i)+"</p>");

    mentre testavo un pò il tutto ho notato che quando l'arraylist non contiene stringhe al.size() mi ritorna 10, quando è pieno mi ritorna 15(effettivamente, nel peggiore dei casi gli elementi sono 16(quindi da 0 a 15..))

    Siccome devo far apparire un div SOLO se è presente almeno una stringa nell'arraylist, secondo voi è lecito fare una cosa del genere?
    if(al.size()>10)
    %>

    <div>
    .
    .
    .
    </div>

    cioè considerare come arraylist vuoto quando la sua dimensione è pari a 10?

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

    Re: [JAVA]Memorizzazione stringhe

    Originariamente inviato da user0
    mentre testavo un pò il tutto ho notato che quando l'arraylist non contiene stringhe al.size() mi ritorna 10
    size() restituisce il numero "logico" di elementi nella lista. Quindi se ritorna 10 vuol dire che ci sono 10 elementi. Che poi questi elementi siano 10 null o 10 reference a stringhe ..... questo per lui non conta.
    Quindi verifica bene il/i punto/i dove fai inserimenti nella lista.

    Originariamente inviato da user0
    cioè considerare come arraylist vuoto quando la sua dimensione è pari a 10?
    No.
    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
    Oct 2010
    Messaggi
    181
    Grazie per la risposta

    Il problema secondo me è qui:

    codice:
    String eNome="";
    if(nome.equals(""))
    	eNome+="Non hai riempito il campo Nome";
    else 
    if(nome.matches("^[A-Z]{1}[a-zA-Z]{1,32}[^0-9]$")==false){	 
    	eNome+= "Il Nome deve cominciare con una lettera maiuscola (no numeri)";
    }
    	er.add(eNome);
    cioè, anche nel caso in cui è presente un nome e rispetta la regex viene inserita una stringa vuota nell'arraylist..

    Ho seguito la stessa procedura anche in altri campi(ci sono altre 10 stringhe oltre ad eNome), quindi per questo motivo l'arraylist ha dimensione 10?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da user0
    codice:
    String eNome="";
    if(nome.equals(""))
    	eNome+="Non hai riempito il campo Nome";
    else 
    if(nome.matches("^[A-Z]{1}[a-zA-Z]{1,32}[^0-9]$")==false){	 
    	eNome+= "Il Nome deve cominciare con una lettera maiuscola (no numeri)";
    }
    	er.add(eNome);
    cioè, anche nel caso in cui è presente un nome e rispetta la regex viene inserita una stringa vuota nell'arraylist..

    Ho seguito la stessa procedura anche in altri campi(ci sono altre 10 stringhe oltre ad eNome), quindi per questo motivo l'arraylist ha dimensione 10?
    Sì, la mia impressione è proprio questa.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    181
    Ciao,

    ho eliminato quelle inutili stringhe e ora funziona tutto. Quando l'arraylist è vuoto la dimensione è 0

    grazie ancora

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.