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

    riconoscere se una stringa è palindroma...errore

    Sapete trovarmi l'errore in questo codice?io ho provato a trasformare la stringa in output in array di caratteri ......ma in input mi da false,false,false....quando in realtà dovrebbe darmi false,true,true...grazie in anticipo

    codice:
    public class Main {
    
        public static boolean palindroma(String g) {
            boolean verità = false;
             char g1[]=new char [g.length()];
            for (int i=0;i<g.length();i++)
                g1[i]=g.charAt(i);
            for (int i = 1; i < g1.length; i++) {
                if (g1[0]==g1.length&&g1[i] == g1[g1.length-1 - i]) {
                    verità = true;
                } else {
                    verità = false;
                }
            }
            return verità;
    
        }
    
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            String x="ciao";
            String y="anna";
            String z="onorarono";
            System.out.println(palindroma(x));
            System.out.println(palindroma(y));
            System.out.println(palindroma(z));
        }
    }

  2. #2
    codice:
    public class Main {
    
      public static boolean palindroma(String g) {
        boolean verità = false;
        char g1[]=new char [g.length()];
            
        for (int i=0;i<g.length();i++)
          g1[i]=g.charAt(i);
                
        for (int i = 0; i < g1.length; i++) {
          System.out.println(g1[i] + " == " + g1[g1.length-1-i]);
          if (g1[i] == g1[g1.length-1 - i]) {
            verità = true;
          } else {
            verità = false;
          }
        }
        
        return verità;
      }
    
        public static void main(String[] args) {
            String x="ciao";
            String y="anna";
            String z="onorarono";
            
            System.out.println(palindroma(x) + "\n");
            System.out.println(palindroma(y) + "\n");
            System.out.println(palindroma(z) + "\n");
        }
    }
    Devi partire da i = 0 e questo

    codice:
    g1[0]==g1.length
    non riesco a capire cosa volevi fare.

    Comunque puoi anche fare il test utilizzando la stringa direttamente, senza creare l'array di char, utilizzando il metodo che già conosci "charAt"


  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Dopo aver fatto le correzioni suggerite da antotan puoi togliere l'if e sostituirlo con
    codice:
    verità = g1[i] == g1[g1.length - 1 - i];
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    grazie a tutti e due!

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Alex'87
    Dopo aver fatto le correzioni suggerite da antotan puoi togliere l'if e sostituirlo con
    codice:
    verità = g1[i] == g1[g1.length - 1 - i];
    Ho dimenticato un pezzo!

    codice:
    verità &= g1[i] == g1[g1.length - 1 - i];
    Volendo puoi ottimizzare la funzione e fare in modo che al primo false la funzioni termini subito
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    quindi se ho capito bene mi stavo complicando la vita....in relatà va bene anche così:

    codice:
    public class Main {
    
        public static boolean palindroma2(String g) {
            boolean v = false;
            for (int i = 0; i < g.length(); i++) {
                if (g.charAt(i) == g.charAt(g.length() - 1 - i)) {
                    v = true;
    
                }
            }
            return v;
        }
    
    
        public static void main(String[] args) {
            String x = "ciao";
            String y = "anna";
            String z = "onorarono";
            System.out.println(palindroma2(x));
            System.out.println(palindroma2(y));
            System.out.println(palindroma2(z));
        }
    }

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Oppure così:
    codice:
       public static boolean palindroma2(String g) {
            for (int i = 0; i < g.length() / 2; i++) {
                if (g.charAt(i) != g.charAt(g.length() - 1 - i)) {
                    return false;
                }
            }
    
            return true;
        }
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.