Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456

    Problema con StringTokenizer

    Ciao,
    ho un problema con StringTokenizer.

    Faccio una query dal db e tiro fuori vari record; nel primo campo c'è la lettera dell'alfabeto (per esempio le lettere A B C ecc) e nel secondo campo i nomi che iniziano con quella lettera (Andrea, anna, aldo ecc), separati da una ",".
    Per stamparli a video faccio un ciclo, e dentro questo ciclo ne faccio un altro con StringTokenizer, in modo da stampare a video tutti i nomi.
    Quindi ottengo
    A
    Andrea
    anna
    aldo

    B
    barbara
    beatrice

    Il terzo record però ha il secondo campo vuoto (ha la lettera C nel primo campo, ma nessun nome separato da "," nel secondo campo). In questo punto succede che si blocca anche il ciclo principale.
    Non viene più stampato niente a video dopo la lettera C, non passa alla lettera D, scrivendo i relativi nomi.
    Se nel db metto dei nomi con la C il ciclo continua fino alla Z, altrimenti si ferma al primo record in cui non trova nomi nel campo che passo a StringTokenizer.

    Qualcuno sa come risolvere questo problema?

    codice:
    while(rs.next())
     	{ 	
           out.print(rs.getString("letteraalfabeto")); // qui stampa la lettera dell'alfabeto
            String nomi= rs.getString("nomi"); 
    	StringTokenizer st = new StringTokenizer(nomi, ","); 
    	 while(st.hasMoreTokens()) 
    		{
     		String Token = st.nextToken(); 
    		out.print( Token + "
    "); // qui stampa i nomi
    		} 
    	}

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    Forse il problema non è quello.
    Il ciclo principale si blocca anche se scrivo una IF che non si verifica.
    Perchè?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    Il problema è che il record che non ha nomi mi restituisce un valore NULL e se lo passo a StringTokenizer non gli va a genio.
    Come devo comportarmi in questo caso?

  4. #4
    Metti lo split in un if.

    codice:
    	
    if(nomi != null){
       StringTokenizer st = new StringTokenizer(nomi, ",");  	 
       while(st.hasMoreTokens()) {  		
            String Token = st.nextToken();  		
            out.print( Token + "
    "); // qui stampa i nomi 		
       } 
    }
    °°Mikmontana°°

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    grazie

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.