Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: Aiuto su toUpperCase

  1. #1

    Aiuto su toUpperCase

    ciao a tutti.
    ho un problemino con toUpperCase.
    vi riporto una parte di codice:
    codice:
    package Calcio;
    
    public class Calciatore {
        private String nome;
        private String cognome;
        private String ruolo;
        private int eta;
        private boolean infortunato;
        int numero;
    
        public Calciatore(String n, String c,String r, int e , boolean i){
            nome=n;
            cognome=c;
            eta=e;
            ruolo=r;
            infortunato=i;
        }
            public String getNome(){
                return nome;
        }
            public void setNome(String nm){
                nome=nm;
                String nm1=nome.substring(0,1).toUpperCase();
                String nm2=nm.substring(1);
                String nm3=nm1.concat(nm2);
                
        }
    ecc...
    tutto ciò è poi richiamato in un'altra classe dal metodo main.
    quello che vorrei ottenere è la prima lettera (in questo caso del nome) maiuscola.

    ps: sappiate che sto solo alla quarta lezione quindi nn sono ancora molto pratico.

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

    Re: Aiuto su toUpperCase

    Originariamente inviato da fermat
    codice:
            public void setNome(String nm){
                nome=nm;
                String nm1=nome.substring(0,1).toUpperCase();
                String nm2=nm.substring(1);
                String nm3=nm1.concat(nm2);
    quello che vorrei ottenere è la prima lettera (in questo caso del nome) maiuscola.
    E lo fa di certo perché la procedura che hai fatto è corretta. Chiaramente però il risultato del concat non volevi assegnarlo ad una variabile locale nm3 ma al campo di istanza nome. Fai la assegnazione, appunto.

    E tieni presente i casi particolari. Se a setNome viene passata una stringa vuota "", la tua procedura così come è lancia una eccezione (indice "fuori" range).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    intanto grazie per la risposta!

    allora, ho modificato così:
    codice:
            public void setNome(String nm){
                nome=nm;
                String nm1=nome.substring(0,1).toUpperCase();
                String nm2=nm.substring(1);
                String nome=nm1.concat(nm2);
                
        }
    ma continua a darmi tutto in minuscolo.
    la parola nome dell'ultima riga è sottolineata di giallo (uso netbeans) e mi dice:
    Local variable hides a field.

    però nn mi da nessun errore.

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da fermat
    intanto grazie per la risposta!

    allora, ho modificato così:
    codice:
            public void setNome(String nm){
                nome=nm;
                String nm1=nome.substring(0,1).toUpperCase();
                String nm2=nm.substring(1);
                String nome=nm1.concat(nm2);
                
        }
    ma continua a darmi tutto in minuscolo.
    la parola nome dell'ultima riga è sottolineata di giallo (uso netbeans) e mi dice:
    Local variable hides a field.

    però nn mi da nessun errore.
    Stai ancora memorizzando il risultato in una variabile locale. Guarda bene cosa hai scritto
    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
    chiedo venia ma nn riesco a venirne a capo

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da fermat
    chiedo venia ma nn riesco a venirne a capo
    codice:
    public void setNome(String nome) {
        String nm1 = nome.substring(0,1).toUpperCase();
        String nm2 = nome.substring(1);
        
        this.nome = nm1.concat(nm2);
    }
    E generalmente almeno per convenzione, si usa mettere i nomi dei parametri uguali ai nomi dei campi di istanza (giusto anche solo per non inventarsi altri nomi come 'nm') e poi si usa this. per referenziare il campo (perché il parametro "nasconde" il campo).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    ho apportato le modifiche che mi hai detto ma ancora nn funziona.
    codice:
    public void setNome(String nome){
                String nm1=nome.substring(0,1).toUpperCase();
                String nm2=nome.substring(1);
                this.nome=nm1.concat(nm2);
                
        }
    ps: cmq this nn lo conoscevo perchè ancora nn lo abbiamo fatto al corso.

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da fermat
    ma ancora nn funziona.
    Funziona di certo, non vedo nulla di sbagliato.
    Se lo invochi tu, è un conto. Se invochi quel costruttore che hai scritto in Calciatore, no, perché non passa da lì.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    tutto il codice (anche quello che nn ho postato perchè nn serviva) viene richiamato da provacalcio.java che è scritto così:
    codice:
    package Calcio;
    
    public class provacalcio {
    
        public static void main(String[] args){
    
            Calcio.Calciatore calciatore1=new Calcio.Calciatore("roberto", "baggio","Centrocampista", 35,false);
            Calcio.Calciatore calciatore2=new Calcio.Calciatore("paolo", "maldini","Difensore", 35,true);
    
            calciatore1.setInfortunato(true);
            calciatore2.setInfortunato(false);
            
            System.out.println(calciatore1.getDescrizione());
            System.out.println(calciatore2.getDescrizione());
    
        }
    }
    il codice funziona, tranne appunto la lettera maiuscola nel nome.
    continua a stampare i nomi con la prima lettera minuscola.

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da fermat
    codice:
            Calcio.Calciatore calciatore1=new Calcio.Calciatore("roberto", "baggio","Centrocampista", 35,false);
            Calcio.Calciatore calciatore2=new Calcio.Calciatore("paolo", "maldini","Difensore", 35,true);
    Stai usando i costruttori e per come hai scritto il costruttore (vedi primo post della discussione), non hai affatto invocato setNome ma hai assegnato direttamente con nome=n;
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.