/** * Definire una classe Palindroma che definisce un metodo di classe boolean * palindroma(String s) che, data una stringa s, verifica che la stringa sia * palindroma. */ public class Palindroma { /** Verifica se la stringa s e' palindroma. */ public static boolean palindroma(String s) { /* pre: s!=null */ int i; // per la scansione di s boolean pal; // la stringa e' palindroma /* la stringa vuota e' considerata palindroma */ pal = true; /* verifico i caratteri fino a meta' stringa * confrontando il primo con l'ultimo, * il secondo col penultimo e cosi' via. */ for (i = 0; i < s.length() / 2; i++) { if (s.charAt(i) != s.charAt(s.length() - 1 - i)) pal = false; } return pal; } private static void testPalindroma(String s, boolean atteso) { System.out.println("palindroma(\"" + s + "\"): " + palindroma(s) + " (" + atteso + ")"); } private static void testPalindroma() { testPalindroma("", true); testPalindroma("a", true); testPalindroma("aa", true); testPalindroma("aba", true); testPalindroma("anna", true); testPalindroma("radar", true); testPalindroma("esose", true); testPalindroma("sator arepo tenet opera rotas", true); // 5 parole che formano un famoso quadrato magico ;-) testPalindroma("ab", false); testPalindroma("estate", false); testPalindroma("arte tetra", false); //senza considerare lo spazio sarebbe palindroma, ma cosi' non lo e' } /* applicazione di test */ public static void main(String[] args) { testPalindroma(); } }