resultado incorrecto - Ejercicio sobre palindromos (adjunto codigo)
Publicado por azucarilla (9 intervenciones) el 09/11/2019 00:25:23
Hola buenas noches, soy estudiante de programacion tengo un ejercicio en el que tengo que sacar si una frase es palindroma o no, es decir que se lea del derecho o inverso del mismo modo. Tengo este codigo pero por algun motivo no me compara bien las palabras. Alguna idea ?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import java.util.Scanner;
public class Act5 {
public static void main(String[] args) {
Scanner lector = new Scanner(System.in);
lector.useDelimiter("\n");
System.out.println("Escribe una frase");
String frase = lector.next();
palindromo(frase);
lector.close();
}
public static void palindromo(String frase) {
//eliminamos espacios y caracteres para juntar la palabra.
String nospace = frase.replace(" ","").replace("!", "").replace("?", "").replace("¿", "").replace("#", "").replace("*", "")
.replace(",", "").replace(".", "").replace(":", "").replace("\n", "");
System.out.println(nospace);
//medimos el largo de la palabra sin espacios ni caracteres
int num =nospace.length();
//calculamos la mitad de la palabra sin la letra central que es comun
int mitad = num /2-1;
//primera mitad de la palabra
String primeramitad = nospace.substring(0,mitad);
//segunda mitad de la palabra
String mitad2= nospace.substring(mitad+1,num);
//giro de la palabra del reves
byte [] byteArray = mitad2.getBytes();
byte [] resultado = new byte [byteArray.length];
for (int i = 0; i<byteArray.length; i++) {
resultado[i] = byteArray[byteArray.length-i-1];
}
//conversion de byte a string
String segundamitad = new String(resultado);
//comparativa entre ambas palabras
if (primeramitad.equals(segundamitad)) {
System.out.println("Es palindromo");
}
else
System.out.println("No es una palabra palindroma");
}
}
Valora esta pregunta


0