let cadena="Hola cadena guapa";
console.log(cadena.length);
console.log(cadena.charAt(5));
console.log(cadena[5]); // No es recomendable usarlo
// Contar las aes en una cadena
let cont=0;
for(let i=0;i<cadena.length;i++){
if (cadena.charAt(i)=="a"){
cont++;
}
}
console.log(`El número de aes en "${cadena}" es ${cont}`);
console.log(cadena.at(5));
// Permite números negativos
console.log(cadena.at(-1));
// Le doy la vuelta a la cadena
let c="";
for(let i=1;i<=cadena.length;i++){
c+=cadena.at(-i);
}
console.log(c);
// Obtener subcadenas de una cadena
console.log(cadena.substr(2,3)); // Desde el caracter 2 3 caracteres "la "
console.log(cadena.substr(2)); // Desde el caracter 2 al final "la cadena guapa"
console.log(cadena.substring(2,4)); // de la posición 2 a la 4 "la"
console.log(cadena.substring(2)); // de la posición 2 al final "la cadena guapa"
// Esta es la recomendada
console.log(cadena.slice(2,4)); // de la posición 2 a la 4 "la"
console.log(cadena.slice(2)); // de la posición 2 al final "la cadena guapa"
console.log(cadena.slice(2,-1)); // de la posición 2 a la última letra "la cadena guap"
console.log(cadena.slice(-4,-1)); // de la antepenultima a la última letra "uap"
for(let i=0;i<cadena.length;i++){
console.log(cadena.slice(i)," - ", cadena.slice(-i))
}
// Pasar a mayúsculas y minúsculas
console.log(cadena.toLowerCase());
console.log(cadena.toUpperCase());
console.log("pingüino".toLocaleUpperCase()); // Lo mismo pero más adecuado para cadenas con acentos y cosas así
// Eliminar espacios
let conespacios=" hola que tal ";
console.log(conespacios.trim()); // Elimina todos los espacios
console.log(conespacios.trimEnd()); // Los del final
console.log(conespacios.trimStart()); // Los del principio
console.log("hola".repeat(4)); // Repite cuatro veces hola
// Reemplazar una cadena por otra
console.log(cadena.replace("guapa","fea"));
console.log(cadena.replace("a","4")); // Solo lo hace una vez, la primera aparición
console.log(cadena.replaceAll("a","4")); // Reemplaza todas
// split y join. Sirve para convertir una cadena en un array y viceversa
console.log(cadena.split(" "));
console.log(cadena.split("a"));
console.log(cadena.split(""));
console.log(cadena.split("").sort().join(""));
// Crea un arbolito (de un lado)
for(let i=0;i<8;i++){
console.log("*".repeat(i));
}
// Crea un arbolito (del otro lado)
for(let i=0;i<8;i++){
console.log("*".repeat(i).padStart(8-1));
}
// Saber si una cadena tiene una subcadena
console.log(cadena.includes("gu")); // true
console.log(cadena.includes("fu")); // false
console.log(cadena.startsWith("Ho")); // true
console.log(cadena.startsWith("ho")); // false
console.log(cadena.startsWith("pepe")); // false
console.log(cadena.endsWith("pa")); // true
console.log(cadena.endsWith("PA")); // false
console.log(cadena.endsWith("pepe")); // false
// Buscar la posición de una cadena dentro de otra
console.log(cadena.indexOf("dena")); // 7 porque es la posición donde se encuentra
console.log(cadena.indexOf("pepe")); // -1 porque no está la cadena pepe
// Puedo decirle la posición desde donde buscar
console.log(cadena.indexOf("a")); // 3 porque es la posición donde se encuentra
console.log(cadena.indexOf("a",4)); // 6 porque es la posición donde se encuentra
// Me busca todas las posiciones de la letra 'a' dentro de la cadena
let pos=cadena.indexOf("a");
while(pos!=-1){
console.log(pos);
pos=cadena.indexOf("a",pos+1); // Buscamos a partir de la posición siguiente
}