Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [JAVA]Metodo per leggere un char

    codice:
    		  public static char leggiSceltaChar (String messaggio, char...ammissibile)
    		  {
    		   boolean finito=false;
    		   char valoreLetto = '\0';
    		   
    		   do{
    			   valoreLetto = leggiChar(messaggio);
    
    		       for(int i=0;i<ammissibile.length;i++){
    		    		char carattere=ammissibile[i];
    		    		if (valoreLetto==carattere|| valoreLetto==Character.toUpperCase(carattere)) 
    		    			finito=true;
    		       }
    		       if(finito==false)
    		    	   System.out.printf(MESSAGGIO_AMMISSIBILI);
    		   } while (!finito);
    		   return valoreLetto;
    		  }
    Questo metodo dovrebbe leggere un char da tastiera e controllare se questo char è ammissibile, cioè se è uguale a uno di certi altri char ricevute dal metodo come array di char. Il problema che mi ritrovo è che se l'utente non inserisce un solo carattere ma una stringa che però ha come lettera iniziale un carattere ammissibile, il metodo me lo accetta comunque. Come fare a risolvere questo problema?

    Quando io al posto di un solo carattere inserisco una parola, questa Java come me la considera? come un unico char o come un array di char? Se lo considerasse come array potrei mettere la condizione che la sua dimensione sia 1...ma quali metodi potrei usare?Gli stessi degli array?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Re: [JAVA]Metodo per leggere un char

    Originariamente inviato da Ghiozzo
    codice:
    		  public static char leggiSceltaChar (String messaggio, char...ammissibile)
    		  {
    		   boolean finito=false;
    		   char valoreLetto = '\0';
    		   
    		   do{
    			   valoreLetto = leggiChar(messaggio);
    
    		       for(int i=0;i<ammissibile.length;i++){
    		    		char carattere=ammissibile[i];
    		    		if (valoreLetto==carattere|| valoreLetto==Character.toUpperCase(carattere)) 
    		    			finito=true;
    		       }
    		       if(finito==false)
    		    	   System.out.printf(MESSAGGIO_AMMISSIBILI);
    		   } while (!finito);
    		   return valoreLetto;
    		  }
    Quando io al posto di un solo carattere inserisco una parola, questa Java come me la considera? come un unico char o come un array di char? Se lo considerasse come array potrei mettere la condizione che la sua dimensione sia 1...ma quali metodi potrei usare?Gli stessi degli array?
    La questione non è come la gestisce Java (perchè Java gestisce sia caratteri singoli, sia array di caratteri, sia oggetti String, sia altro ancora). Il problema è che noi non sappiamo assolutamente nulla della funzione che ho evidenziato in grassetto e sottolineato.

    Che cosa fa la funzione "leggiChar()"? E' intuibile che visualizza un messaggio a video e restituisce un carattere (char)... ma come si comporta nel caso di un input più lungo di un carattere? Questo lo puoi sapere solo tu... posso ipotizzare che prenda il primo carattere della stringa in input e restituisca quello, buttando via tutto il resto, ma, ripeto, è solo una mia supposizione.


    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

  3. #3
    hai pienamente ragione! Mi sono dimenticato di postare anche il metodo leggiChar. Comunque le tue parole mi hanno, come dire, acceso una lampadina e son riuscito a risolvere il problema

    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.