Visualizzazione dei risultati da 1 a 6 su 6

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2015
    Messaggi
    6
    Innanzitutto grazie mille per la risposta, mi sarebbe piaciuto capire dove ho sbagliato ma in ogni caso proverò a riscriverlo seguendo il tuo suggerimento.
    Non riesco a capire però come posso fare a controllare se ad un determinato indice corrisponde una lettera maiuscola/minuscola senza dover necessariamente confrontare una stringa composta da tutte maiuscole/minuscole ("ABCDEFGHILMNOPQRSTUVXJYK")
    Esiste qualche modo più rapido?

    grazie per la pazienza.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da R3m Visualizza il messaggio
    Non riesco a capire però come posso fare a controllare se ad un determinato indice corrisponde una lettera maiuscola/minuscola senza dover necessariamente confrontare una stringa composta da tutte maiuscole/minuscole ("ABCDEFGHILMNOPQRSTUVXJYK")
    Esiste qualche modo più rapido?
    Le due stringhe letterali "ABC....Z" e "abc.....z" le puoi certamente tenere, non è quello il punto. Con il metodo che ti ho detto io (testLettera) cerchi il carattere o in una o nell'altra, in base chiaramente al flag maiuscolo.
    Poi come lo cerchi .... puoi usare un banale for oppure puoi sfruttare il indexOf di String (se ti è permesso usarlo ai fini della esercitazione).
    Se vuoi evitare questa ricerca, devi controllare il valore del char, banalmente verificando che sia tra 'A' e 'Z' oppure tra 'a' e 'z'.

    E ripeto: quando scansioni la stringa da verificare, se indice 0 testLettera(ch, true), se 1 testLettera(ch, false), ecc... E per questo non hai nemmeno bisogno di un if.
    Se restituisce false, sai già che la stringa NON è il caso richiesto dall'esercizio.
    Ultima modifica di andbin; 03-08-2015 a 17:32
    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 2014
    residenza
    Padova
    Messaggi
    361
    Quote Originariamente inviata da R3m Visualizza il messaggio
    mi sarebbe piaciuto capire dove ho sbagliato
    L'errore è qui:

    codice:
    for(b=0;b<s.length();b=b+n){
             for(j=0;j<maiusc.length();j++){
                if(s.charAt(b)==maiusc.charAt(j))
                 contatore++;
             }
           n++;
           b++;
           }
    


    Scrivi b=b+n nell' istruzione di incremento del for, poi ad ogni passo aumenti sia b,sia n.Quindi b vale in ordine 0,2,5,9,14 ...

    Se tu nell'istruzione di incremento scrivi invece b=b+2 (o b+=2)e togli sia n++; sia b++; tutto funziona correttamente.
    Lo stesso vale per il ciclo delle minuscole.


    In ogni caso, se non sai dove è un errore in un ciclo, un semplice print dentro il ciclo ti fa capire dove hai qualcosa che non ti aspetti (ma è meglio se segui i consigli sopra e crei metodi ad hoc) .

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.