/* Definire una classe Suffisso che definisce il metodo di classe * boolean endsWith(String s, String t) che, * date le stringhe non nulle s e t, verifica se la stringa t * è un suffisso della stringa s, ovvero se i caratteri finali * della stringa s coincidono (ordinatamente) * con i caratteri della stringa t. */ class Suffisso { /* Verifica se la stringa t è un suffisso di s. */ public static boolean endsWith(String s, String t) { // pre: s!=null && t!=null int ls; // lunghezza di s int lt; // lunghezza di t int i; // per la scansione delle stringhe s e t int spostamento; // per allineare t con gli ultimi caratteri di s boolean suffisso; // t è un suffisso di s /* calcola le lunghezze di s e t */ ls = s.length(); lt = t.length(); /* calcola lo spostamento tra s e t */ spostamento = ls - lt; /* ad esempio, se * s = "alfabeto" (ls=8) e * t = "beto" (lt=4), * lo spostamento è 4: * infatti lo "spostamento" di t di 4 caratteri * allinea la "fine" di t con la "fine" di s: * s = "alfabeto" * t = "....beto" */ /* affinché t sia suffisso di s, * t deve essere lunga al più quanto s */ if (spostamento<0) suffisso = false; else { // t non è più lunga di s /* verifica se t è suffisso di s, * ovvero se i caratteri di t sono tutti * uguali agli ultimi lt caratteri di s */ suffisso = true; i = 0; while (suffisso && i