Skip to content

Commit 7891961

Browse files
committed
#4 - Java
Se realiza el ejercicio de Cadenas de caracteres con su ejercicio de Dificultad adicional.
1 parent 244e7aa commit 7891961

File tree

1 file changed

+162
-0
lines changed

1 file changed

+162
-0
lines changed
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
import java.util.*;
2+
3+
public class AndrewCodev {
4+
public static void main(String[] args) {
5+
6+
AndrewCodev andrewCodev = new AndrewCodev();
7+
// CONCATENACIÓN con operador +
8+
String cadena1 = "Andrew";
9+
String cadena2 = "Codev";
10+
11+
System.out.println("Concatenando: " + cadena1 + " + " + cadena2 + " = " + cadena1 + cadena2);
12+
13+
// OBTENER LONGITUD con length()
14+
String cadena3 = cadena1 + cadena2;
15+
System.out.println("La palabra: " + cadena3 + " tiene " + (cadena1 + cadena2).length() + " caracteres");
16+
17+
// Acceder a un caracter indivudual con charAt(0)
18+
System.out.println("La sexta letra de la palabra " + cadena3 + " es: " + cadena3.charAt(5) + "\n");
19+
20+
// Comparar cadenas de caracteres.
21+
String str1 = "Prueba";
22+
String str2 = "prueba";
23+
boolean comparar = str1.equals(str2);
24+
25+
String mensaje = comparar ? str1 + " y " + str2 + ": Son iguales"
26+
: str1 + " y " + str2
27+
+ ": Son diferentes, debido a que equeals() \nverifica que los caracteres sean exactamente iguales incluyendo las Mayusculas y las Minusculas";
28+
System.out.println(mensaje);
29+
30+
System.out.println("\n");
31+
comparar = str1.equalsIgnoreCase(str2);
32+
mensaje = comparar ? str1 + " y " + str2
33+
+ ": Son iguales ya que equalsIgnoreCase() solo compara las palabras y omite las Mayusculas y Minusculas"
34+
: str1 + " y " + str2 + ": Son diferentes";
35+
System.out.println(mensaje);
36+
37+
System.out.println("\n");
38+
int comparar2 = str1.compareTo(str2);
39+
mensaje = comparar2 == 0 ? str1 + " y " + str2 + ": Son iguales"
40+
: str1 + " y " + str2
41+
+ ": Son diferentes, debido a que compareTo() \nverifica que los caracteres sean exactamente iguales \nincluyendo las Mayusculas y las Minusculas y nos da como resultado un número negativo: "
42+
+ comparar2;
43+
System.out.println(mensaje);
44+
45+
System.out.println("\n");
46+
comparar2 = str1.compareToIgnoreCase(str2);
47+
mensaje = comparar2 == 0 ? str1 + " y " + str2
48+
+ ": Son iguales ya que compareToIgnoreCase() solo compara las palabras y omite las Mayusculas y Minusculas"
49+
: str1 + " y " + str2 + ": Son diferentes";
50+
System.out.println(mensaje);
51+
52+
// SUBCADENA
53+
str1 = "Hola mundo";
54+
String subcadena = str1.substring(5);
55+
System.out.println("La subcadena es: " + subcadena);
56+
57+
String criterio = "mundo";
58+
59+
// BUSQUEDA DE SUBCADENAS
60+
int indice = str1.indexOf(criterio); // indice será 5
61+
boolean contiene = str1.contains(criterio); // contiene será true
62+
63+
System.out.println("\nEl indice es: " + indice + " y " + (contiene ? "Contiene la palabra buscada: " + criterio
64+
: "No contiene la palabra buscada: " + criterio));
65+
66+
// MODIFICAR CADENA str1.replace(
67+
System.out.println("\nLa palabra: " + str1 + " se ha modificado por: " + str1.replace(str1, cadena3));
68+
69+
// MAYUSCULAS Y MINISCULAS
70+
71+
System.out.println("Todo en MAYUSCULAS: " + str1.toUpperCase());
72+
System.out.println("Todo en minusculas: " + str1.toLowerCase());
73+
74+
// DIFICULTAD EXTRA
75+
System.out.println("\nDIFICULTAD EXTRA\n");
76+
77+
// Verificando si las palabras son palindromos o no
78+
String palabra1 = "amor";
79+
System.out.println(andrewCodev.isPalindromo(palabra1));
80+
String palabra2 = "remar";
81+
System.out.println(andrewCodev.isPalindromo(palabra2));
82+
83+
// Verificando si ambas palabras son Anagramas
84+
System.out.println(andrewCodev.sonAnagramas(palabra1, palabra2));
85+
86+
// Verificando si es Isograma
87+
System.out.println(andrewCodev.isIsograma(palabra1));
88+
System.out.println(andrewCodev.isIsograma(palabra2));
89+
90+
}
91+
92+
public String isPalindromo(String palabra) {
93+
int contCaracteres = palabra.length();
94+
int posicionLetra = contCaracteres - 1;
95+
String mensaje = "";
96+
String compararPalabra = "";
97+
98+
for (int j = 0; j < contCaracteres; j++) {
99+
compararPalabra = compararPalabra + palabra.charAt(posicionLetra);
100+
posicionLetra--;
101+
}
102+
103+
// Comprobando si la palabra es un palindromo
104+
if (palabra.equalsIgnoreCase(compararPalabra)) {
105+
mensaje = "La palabra: " + palabra + " es un palindromo";
106+
} else {
107+
mensaje = "La palabra: " + palabra + " no es un palindromo";
108+
}
109+
110+
return mensaje;
111+
}
112+
113+
public String sonAnagramas(String palabra1, String palabra2) {
114+
String mensaje = "";
115+
// Convertimos las palabras en arrys de caracteres
116+
char[] arregloPalabra1 = palabra1.replaceAll("[\\s]", "").toLowerCase().toCharArray();
117+
char[] arregloPalabra2 = palabra2.replaceAll("[\\s]", "").toLowerCase().toCharArray();
118+
119+
// ordenamos los arrays
120+
Arrays.sort(arregloPalabra1);
121+
Arrays.sort(arregloPalabra2);
122+
123+
if (Arrays.equals(arregloPalabra1, arregloPalabra2)) {
124+
mensaje = palabra1 + " y " + palabra2 + " son anagramas.";
125+
} else {
126+
mensaje = palabra1 + " y " + palabra2 + " no son anagramas.";
127+
}
128+
return mensaje;
129+
}
130+
131+
public String isIsograma(String palabra) {
132+
String mensaje = "";
133+
boolean isorama = true;
134+
Set<Character> caracteres = new HashSet<>();
135+
136+
for (char c : palabra.toCharArray()) {
137+
if (!caracteres.add(c)) {
138+
isorama = false;
139+
}
140+
}
141+
142+
if (isorama) {
143+
System.out.println("La palabra " + palabra + " es un Isorama");
144+
} else {
145+
System.out.println("La palabra " + palabra + " no es un Isorama");
146+
}
147+
148+
return mensaje;
149+
}
150+
}
151+
152+
/*
153+
* EJERCICIO: Muestra ejemplos de todas las operaciones que puedes realizar con
154+
* cadenas de caracteres en tu lenguaje. Algunas de esas operaciones podrían ser
155+
* (busca todas las que puedas): - Acceso a caracteres específicos, subcadenas,
156+
* longitud, concatenación, repetición, recorrido, conversión a mayúsculas y
157+
* minúsculas, reemplazo, división, unión, interpolación, verificación...
158+
*
159+
* DIFICULTAD EXTRA (opcional): Crea un programa que analice dos palabras
160+
* diferentes y realice comprobaciones para descubrir si son: - Palíndromos -
161+
* Anagramas - Isogramas
162+
*/

0 commit comments

Comments
 (0)