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

    Caratteri diversi in una stringa

    Ciao a tutti raga, potete darmi una mano a svolgere questo esercizio: data in input (da console) una stringa dire se è costituita da caratteri tutti diversi tra loro. Grazie in anticipo per l'aiuto.

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Quali sono i problemi che incontri?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Non so come fare per vedere se i caratteri sono tutti diversi tra loro

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Saverioapple Visualizza il messaggio
    Non so come fare per vedere se i caratteri sono tutti diversi tra loro
    Metodo "stupido" (poco efficiente ma lineare): il primo carattere deve essere diverso da tutti i seguenti, il secondo deve essere diverso da tutti i seguenti, ecc... Hai già capito ... doppio ciclo for annidato
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Dopo che sono arrivato qui cosa dovrei fare?
    codice:
    package caratteridiversi;
    import java.util.Scanner;
    public class caratteridiversi {
     public static void main(String[] args) {
      // TODO Auto-generated method stub
      Scanner in=new Scanner(System.in);
      String s;
      System.out.println("Inserisci una stringa");
      s=in.nextLine();
      for(int i=0;i<s.length();i++)
      {
       for(int c=0;c<s.length();c++)
       {
        
       }
      }
      
     }
    }

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Dovresti confrontare il carattere i-esimo con ciascun carattere c-esimo.
    Occhio però che il ciclo interno non deve partire da zero ma dalla posizione successiva ad i (che per tale motivo deve fermarsi un'iterazione prima).

    String ti fornisce charAt(indice) per ottenere il carattere in un certa posizione.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Dopo che sono arrivato qui che faccio?
    codice:
    package caratteridiversi;
    import java.util.Scanner;
    public class caratteridiversi {
     public static void main(String[] args) {
      // TODO Auto-generated method stub
      @SuppressWarnings("resource")
      Scanner in=new Scanner(System.in);
      String s;
      System.out.println("Inserisci una stringa");
      s=in.nextLine();
      int a;
      for(int i=0;i<s.length();i++)
      {
       a=s.charAt(i);
       for(int c=0;c<s.length();c++)
       {
        if(a!=s.charAt(c))
        {
         
        }
       }
      }
      
     }
    }



  8. #8
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Osservazioni:
    1. perché memorizzi il risultato della charAt in una variabile int? Non credo sia un errore ma... che motivo c'è? Puoi utilizzare una variabile char oppure anche nessuna variabile e fare il confronto diretto

    2. andbin ti aveva detto una cosa specifica: confronti ogni carattere con i SEGUENTI, quindi il ciclo for esterno deve arrivare fino al penultimo carattere, mentre quello interno deve partire dal carattere successivo (quindi in posizione i+1) ed arrivare fino all'ultimo


  9. #9
    Grazie per la risposta, dopo che ho fatto così come faccio a dire se la stringa è composta da caratteri tutti diversi?
    codice:
    package caratteridiversi;
    import java.util.Scanner;
    public class caratteridiversi {
     public static void main(String[] args) {
      // TODO Auto-generated method stub
      @SuppressWarnings("resource")
      Scanner in=new Scanner(System.in);
      String s;
      System.out.println("Inserisci una stringa");
      s=in.nextLine();
      int a;
      for(int i=0;i<s.length()-1;i++)
      {
       a=s.charAt(i);
       for(int c=i+1;c<s.length();c++)
       {
        if(a!=s.charAt(c))
        {
         
        }
       }
      }
      
     }
    }

  10. #10
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Dai, fai uno sforzo! Appena trovi due caratteri uguali puoi subito dire che la stringa non è composta da caratteri tutti diversi. Invece se arrivi in fondo ai tuoi cicli for senza aver trovato nemmeno una coppia di caratteri uguali allora puoi concludere che la stringa è formata da caratteri tutti diversi. Lo puoi realizzare in molti modi: utilizzando un bool, una funzione che restituisce un bool, ...

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.