• WORD
  • FORMATO AUTOMATICO Y ESTILOS
  • INSERTAR CUADRO DE TEXTO Y ECUACION
  • REFERENCIASTABLA DE CONTENIDO Y BIBLIOGRAFIA
  • Ir a Prácticas
  • EXCEL
  • FORMULAS I y II
  • TABLAS Y GRAFICOS DINAMICOS
  • SUBTOTALES Y BASE DE DATOS
  • MACROS
  • Ir a Prácticas
  • AUTOCAD
  • 2D:DIBUJO Y ACOTAR
  • INSERTAR BLOQUES Y PLOT
  • 3D: MODELADO Y EDICION DE SOLIDOS
  • RENDER Y ANIMACIONES
  • Ir a Prácticas

viernes, 6 de febrero de 2026

C#: MATRICES

 ARREGLOS(MATRICES)


INTRODUCIR UNA MATRIZ:

using System;

 

class Program

{

    static void Main()

    {

                Console.Write("¿Cuántas FILAS? ");

        int filas = int.Parse(Console.ReadLine());

 

        Console.Write("¿Cuántas COLUMNAS? ");

        int columnas = int.Parse(Console.ReadLine());

 

       

        int[,] matriz = new int[filas, columnas];

 

        Console.WriteLine("\n--- INGRESAR DATOS ---");

        for (int i = 0; i < matriz.GetLength(0); i++)  // GetLength(0) = FILAS

        {

            for (int j = 0; j < matriz.GetLength(1); j++)  // GetLength(1) = COLUMNAS

            {

                Console.Write($"matriz[{i},{j}] = ");

                matriz[i, j] = int.Parse(Console.ReadLine());

            }

        }

 

        // 4. MOSTRAR matriz

        Console.WriteLine("\n--- MATRIZ LLENA ---");

        for (int i = 0; i < matriz.GetLength(0); i++)

        {

            for (int j = 0; j < matriz.GetLength(1); j++)

            {

                Console.Write($"{matriz[i, j],4}");

            }

            Console.WriteLine();

        }

    }

}

 

 

BUSQUEDA DE MATRICES DESORDENADAS CON BUSQUEDA ,LINEAL

using System;

 

class Program

{

    public static int[] BuscarLineal(int[,] matriz, int valor)

    {

        int filas = matriz.GetLength(0);

        int columnas = matriz.GetLength(1);

 

        // Recorrer TODA la matriz elemento por elemento

        for (int i = 0; i < filas; i++)

        {

            for (int j = 0; j < columnas; j++)

            {

                if (matriz[i, j] == valor)

                {

                    return new int[] { i, j };  // ¡Encontrado!

                }

            }

        }

        return new int[] { -1, -1 };  // No encontrado

    }

 

    static void ImprimirMatriz(int[,] matriz)

    {

        int filas = matriz.GetLength(0);

        for (int i = 0; i < filas; i++)

        {

            for (int j = 0; j < matriz.GetLength(1); j++)

                Console.Write($"{matriz[i, j],4}");

            Console.WriteLine();

        }

    }

 

 

 

    static void Main()

    {

        // Matriz DESORDENADA

        int[,] matrizDesordenada = {

            { 5, 1, 9 },

            { 3, 8, 2 },

            { 7, 4, 6 }

        };

 

        Console.WriteLine("Matriz DESORDENADA:");

        ImprimirMatriz(matrizDesordenada);

        Console.WriteLine();

 

        // Probar búsquedas

        int[] resultado1 = BuscarLineal(matrizDesordenada, 8);

        Console.WriteLine($"Buscar 8 → [{resultado1[0]}, {resultado1[1]}]");  // [1,1]

 

        int[] resultado2 = BuscarLineal(matrizDesordenada, 10);

        Console.WriteLine($"Buscar 10 → [{resultado2[0]}, {resultado2[1]}]"); // [-1,-1]

    }

}

Ordenar una matriz conviertiendola en un array

using System;

 

class Program

{

    static void Main()

    {

        // Matriz DESORDENADA inicial

        int[,] matriz = {

            { 5, 1, 7 },

            { 3, 8, 2 },

            { 7, 4, 6 }

        };

 

        Console.WriteLine("MATRIZ ORIGINAL:");

        ImprimirMatriz(matriz);

 

        // ORDENAR TODA LA MATRIZ

        OrdenarMatriz(matriz);

 

        Console.WriteLine("\nMATRIZ ORDENADA:");

        ImprimirMatriz(matriz);

    }

 

   

    static void OrdenarMatriz(int[,] matriz)

    {

        int filas = matriz.GetLength(0);

        int cols = matriz.GetLength(1);

 

       

        int[] temp = new int[filas * cols];

        int index = 0;

        for (int i = 0; i < filas; i++)

            for (int j = 0; j < cols; j++)

                temp[index++] = matriz[i, j];

 

        Array.Sort(temp);

 

       

        index = 0;

        for (int i = 0; i < filas; i++)

            for (int j = 0; j < cols; j++)

                matriz[i, j] = temp[index++];

    }

 

    static void ImprimirMatriz(int[,] matriz)

    {

        for (int i = 0; i < matriz.GetLength(0); i++)

        {

            for (int j = 0; j < matriz.GetLength(1); j++)

                Console.Write($"{matriz[i, j],4}");

            Console.WriteLine();

        }

    }

}

 

Busqueda de elementos en matrices

Método GetLength(0)->filas

Método GetLength(1)->columnas

 

 

using System;

 

class Program

{

    // Método estático debe estar dentro de la clase

    public static int[] BuscarEsquinas(int[,] matriz, int valor)

    {

        int fila = 0;

        int col = matriz.GetLength(1) - 1;

 

        while (fila < matriz.GetLength(0) && col >= 0)

        {

            if (matriz[fila, col] == valor)

            {

                return new int[] { fila, col };

            }

            else if (valor < matriz[fila, col])

            {

                col--;  // Descartar columna

            }

            else

            {

                fila++;  // Descartar fila

            }

        }

        return new int[] { -1, -1 };

    }

 

    static void Main()

    {

        // Uso para matriz ordenada:

        int[,] matrizOrdenada = {

            { 1, 4, 7 },

            { 2, 5, 8 },

            { 3, 6, 9 }

        };

 

        int[] resultado = BuscarEsquinas(matrizOrdenada, 5);

        Console.WriteLine($"Encontrado en [{resultado[0]}, {resultado[1]}]");  // [1, 1]

    }

}

 

miércoles, 4 de febrero de 2026

JAVA:SWITCH Y ARRAYS

SWITCH

La estructura switch en Java es una sentencia de control que evalúa una expresión y ejecuta un bloque de código específico según el valor coincidente en sus case. Es más eficiente y legible que múltiples if-else para comparar un valor contra varias opciones constantes, usando break para salir y default para casos no previstos.

SINTAXIS:

switch (expresión) {

    case valor1:

        // código para valor1

        break;

    case valor2:

        // código para valor2

        break;

    default:

        // código si no coincide ningún case

}

EJEMPLO:

public class SwitchSimple {

    public static void main(String[] args) {

        int numero = 2;

        switch (numero) {

            case 1:

                System.out.println("Uno");

                break;

            case 2:

                System.out.println("Dos");

                break;

            case 3:

                System.out.println("Tres");

                break;

            default:

                System.out.println("Otro");

        }

    }

}

ARRAYS

Los arrays en Java son estructuras de datos que almacenan una colección fija de elementos del mismo tipo en posiciones indexadas, comenzando desde 0. Permiten acceder rápidamente a los datos mediante su índice y son ideales para listas de tamaño conocido.

Declaración

Para declarar un array, usa corchetes después del tipo de dato, como int[] numeros; o String[] frutas;. Luego, créalo con new int[5] para asignar tamaño, o inicialízalo directamente con valores.

Creación e Inicialización

text

int[] numeros = {10, 20, 30, 40, 50};  // Inicialización directa

String[] frutas = new String[]{"manzana", "plátano", "cereza"};  // Con new

El tamaño se fija al crearlos; usa numeros.length para obtenerlo (ej: 5).

Acceso y Modificación

Accede con corchetes: numeros[0] es 10; modifícalo con numeros[2] = 35;. Evita índices fuera de rango para prevenir ArrayIndexOutOfBoundsException.

Recorrido

Usa un bucle for tradicional o mejorado:

text

for (int i = 0; i < numeros.length; i++) {

    System.out.println(numeros[i]);

}

for (int num : numeros) {  // For-each

    System.out.println(num);

}

 

EJEMPLO:

import java.util.Scanner;

 

public class BusquedaArray {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

       

        // Declarar y tamaño del array

        int[] numeros = new int[5];

       

        // Ingreso de números por teclado

        System.out.println("Ingrese 5 números:");

        for (int i = 0; i < numeros.length; i++) {

            System.out.print("Número " + (i+1) + ": ");

            numeros[i] = scanner.nextInt();

        }

       

        // Mostrar array

        System.out.println("\nArray ingresado:");

        for (int num : numeros) {

            System.out.print(num + " ");

        }

       

        // Pedir número a buscar

        System.out.print("\n\nIngrese el número a buscar: ");

        int buscar = scanner.nextInt();

       

        // Búsqueda lineal

        int posicion = -1;

        for (int i = 0; i < numeros.length; i++) {

            if (numeros[i] == buscar) {

                posicion = i;

                break;

            }

        }

       

        // Resultado de la búsqueda

        if (posicion != -1) {

            System.out.println("¡Encontrado! El número " + buscar + " está en la posición " + posicion);

        } else {

            System.out.println("El número " + buscar + " NO se encuentra en el array.");

        }

        scanner.close();

    }

}

domingo, 1 de febrero de 2026

java: Estructuras Repetitivas

ESTRUCTURAS REPETITIVAS


Los bucles for, while y do-while en Java son fundamentales para controlar la repetición de código, permitiendo iteraciones eficientes según el número de repeticiones conocidas o condiciones dinámicas. A continuación, amplío cada concepto con sintaxis detallada, ejemplos prácticos y casos de uso.

Bucle For

El bucle for es el más estructurado y se usa cuando conoces exactamente cuántas veces quieres repetir el código, como recorrer arreglos o contar hasta un límite. Su sintaxis completa es for (inicialización; condición; actualización) { código; }, donde la inicialización (ej. int i=0) ocurre una sola vez al inicio, la condición se evalúa antes de cada iteración (si es falsa, sale del bucle) y la actualización (ej. i++) se ejecuta al final de cada ciclo.

for (int i = 0; i < 5; i++) {

    System.out.println("Iteración: " + i);

}

Esto imprime del 0 al 4. También existe el for-each (mejorado desde Java 5) para colecciones: for (String nombre : nombres) { ... }, ideal para recorrer sin índices.

Bucle While

El while verifica la condición antes de ejecutar el bloque, por lo que si es falsa desde el principio, el código ni siquiera se ejecuta una vez. Sintaxis: while (condición) { código; }. Es perfecto para bucles indefinidos donde esperas un cambio externo, como procesar entradas hasta que el usuario escriba "salir".

Ejemplo:

int contador = 0;

while (contador < 5) {

    System.out.println("Contador: " + contador);

    contador++;

}

Si inicializas contador en 10, no imprime nada. Requiere cuidado para evitar bucles infinitos; usa break para salir prematuramente.

Bucle Do-While

El do-while es único porque ejecuta el bloque al menos una vez y verifica la condición después: do { código; } while (condición);. Esto garantiza una ejecución inicial, ideal para menús o validaciones donde primero actúas y luego decides repetir.

int numero;

do {

    System.out.print("Ingresa un número positivo: ");

    numero = scanner.nextInt();

} while (numero <= 0);

Aquí, siempre pide al menos una entrada, incluso si el usuario ingresa 0 de inmediato. El punto y coma final es obligatorio.

 

EJEMPLOS

package javaapplication4;

import java.util.Scanner;

 

public class JavaApplication4 {

 

    public static void main(String[] args) {

       // Imprime del 1 al 5

    for (int i = 1; i <= 5; i++) {

    System.out.println("Iteracion: " + i);

        }

    int j = 1;

    while (j <= 5) {

    System.out.println("Valor: " + j);

    j++; // Incremento para evitar bucle infinito

    }

 

int w = 1;

do {

    System.out.println("Valor: " + w);

    w++;

} while (w <= 5);

    String amigo="hola";

    for(int z=0;z<amigo.length();z++){

        char caracter=amigo.charAt(z);

        System.out.println(caracter);

    }

    System.out.println(amigo); 

    int suma = 0;

for (int t = 1; t <= 100; t++) {

    suma += t;

}

   

System.out.println("Suma: " + suma); // Muestra 5050

for (int q = 10; q >= 1; q--) {

    System.out.println(q);

}

        System.out.println("tabla del 5");

int num1=5;

int resu=1;

for(int e=0;e<=10;e++){

        resu=e*num1;

        //resu*=num1;

    System.out.printf("%d"+"x"+"%d"+"="+"%d",num1,e,resu);

    System.out.println();

   

    }

   

     Scanner sc = new Scanner(System.in);

        int opcion;

        do {

            System.out.println("1. Saludar");

            System.out.println("2. Salir");

            System.out.print("Elija una opcion: ");

            opcion = sc.nextInt();

        } while (opcion != 2);

        System.out.println("Programa finalizado.");

     

 

        Scanner scan = new Scanner(System.in);

         String input = "";

        while (!input.equals("exit")) {

        System.out.println("Escribe algo (escribe 'exit' para salir): ");

            input = scan.nextLine();

            }

          scan.close();

       int miNumero = 1;

        while (miNumero <= 10) {

        if (miNumero % 2 == 0) {

        System.out.println(miNumero + " es par");

        }

        miNumero++;

        }

     }

}

viernes, 30 de enero de 2026

C#: FUNCIONES Y MATRICES

APLICATIVO VISUAL EN C#

ELEGIR:

 

WINDOWS FOR APP

 

PODEMOS PONER EL SIGUIENTE CODIGO EN EL BOTON GRABAR

        private void button1_Click(object sender, EventArgs e)

        {

            String texto = textBox1.Text;

            MessageBox.Show("este es el mensaje" + texto);

            textBox2.Text = texto.ToUpper();        }

    }

}

 

 

 FUNCIONES EN C#

Las funciones en C# (comúnmente llamadas métodos) son bloques de código reutilizables que realizan tareas específicas, se definen dentro de clases y se invocan para ejecutar su lógica, aceptando parámetros (entradas) y retornando un valor (salida) opcionalmente, como void (nada) o un tipo de dato (int, string, etc.). Son cruciales para organizar el código en unidades manejables, facilitando la lectura, mantenimiento y reutilización, y siguen convenciones como PascalCase (ej: CalcularTotal) para su nombre

Métodos con retorno

Un método con returnestá diseñado para calcular y devolver un valor al código que lo llamó. Especifica el tipo de dato que devuelve (como int, stringo double) y usas returnpara enviar ese resultado.

public int Sumar(int a, int b)

{

    int resultado = a + b;

    return resultado;  // O directamente: return a + b;

}

// Uso: int total = Sumar(5, 3);  // total vale 8

 

•             Siempre debes devolver algo (o lanzar excepción).

•             Útil para cálculos que reutilizas.

Métodos void

Un método void no devuelve nada , solo realiza como imprimir, cambiar variables globales o guardar archivos. Termina automáticamente al final del bloque.

public void ImprimirMensaje(string texto)

{

    Console.WriteLine(texto);

    // No hay return con valor

}

// Uso: ImprimirMensaje("Hola");  // Solo imprime, no guarda resultado

•             Puedes usar return;solo para salir antes (ej: si hay error).

•             Ideal para "hacer algo" sin devolver datos.

Piensa en returncomo "responder una pregunta" y voidcomo "hacer un trabajo". Así eliges cuál usar según necesites el resultado o no.

 

 

ALCANCE DE LAS VARIABLES

En C#, las variables se clasifican por su alcance (scope) y duración (lifetime) : locales (dentro de un método), globales (accesibles desde cualquier parte de la clase o programa) y estáticas (pertenecen a la clase, no a instancias). Te explico cada una con ejemplos simples de nivel universitario

Se declara dentro de un método o bloque (como ifo for). Solo existen mientras ese método se ejecuta y no son accesibles fuera de él.

public void MiMetodo()

{

    int local = 10;  // Variable local: solo vive aquí

    Console.WriteLine(local);  // OK: imprime 10

}

// Console.WriteLine(local);  // ERROR: no existe fuera del método

Variables Globales (de Clase/Instancia)

Se declara en el nivel de la clase (fuera de métodos). Son accesibles desde cualquier método de esa clase. Si no son static, pertenece a cada objeto (instancia).

public class Calculadora

{

    int globalInstancia = 100;  // Global de instancia: cada objeto tiene su copia

 

    public void Sumar()

    {

        globalInstancia += 5;  // OK: modifica la de esta instancia

        Console.WriteLine(globalInstancia);  // 105

    }

}

Variables estáticas

Se declara con staticen el nivel de la clase. Comparten un solo valor entre todas las instancias de la clase y viven mientras se ejecuta el programa. Accesibles sin crear objetos.

 

public class Contador

{

    public static int globalEstatica = 0;  // Una sola para toda la clase

 

    public void Incrementar()

    {

        globalEstatica++;  // Todas las instancias modifican la misma

    }

}

 

// Uso:

var c1 = new Contador();

var c2 = new Contador();

c1.Incrementar();  // globalEstatica = 1

c2.Incrementar();  // globalEstatica = 2 (compartida)

Console.WriteLine(Contador.globalEstatica);  // 2

EJEMPLOS:

EJEMPLO SALUDO VOID

using System;

 

public class Tienda

{

    internal class Programa

    {

        static void Main(string[] args)

        {

            saluda("jonas",45);

            Console.ReadKey();

 

        }

        static void saluda(string nombre, int edad)

        {

            nombre = nombre.ToUpper();

            Console.WriteLine("hola mundo " + nombre+"tu edad es"+edad);

        }

 

    }

}

EJEMPLO RETURN

using System;

 

public class Tienda

{

    internal class Programa

    {

        static void Main(string[] args)

        {

            int resultado = sumar(5, 7);

            string texto = nombre("ezequiel");

            Console.WriteLine(resultado);

            Console.WriteLine(texto);

            Console.ReadKey();

 

        }

        static int sumar(int a, int b)

        {

            return a + b;

        }

        static string nombre(string nombre)

        {

            return "hola" + nombre;

        }

 

    }

}

 

EJEMPLO PALINDROMA

                                                                   using System;

 

public class Tienda

{

    internal class Programa

    {

        static void Main(string[] args)

        {

            int resultado = sumar(5, 7);

            string texto = nombre("ana");

            Console.WriteLine(resultado);

            Console.WriteLine(texto);

            Console.ReadKey();

 

        }

        static int sumar(int a, int b)

        {

            return a + b;

        }

        static string nombre(string palabra)

        {

                string revez = "";

 

                for (int i = palabra.Length-1;i>=0; i--)

                {

                    revez += palabra[i];

                }

            if (palabra == revez)

            {

                Console.WriteLine("es palindroma");

            }

            else

            {

                Console.WriteLine("no es palidroma");

            }

 

                Console.WriteLine(revez);

                return revez + palabra;

        }

 

    }

}

EJEMPLO CON STRING:

 

using System;

 

class Program

{

    static void Main()

    {

        Console.Write("¿Cuántos números quieres ingresar? ");

        int tamano = int.Parse(Console.ReadLine());

 

        int[] numeros = new int[tamano];

 

        for (int i = 0; i < tamano; i++)

        {

            Console.Write($"Ingresa el número {i + 1}: ");

            numeros[i] = int.Parse(Console.ReadLine());

        }

 

        var resultado = CalcularSumaYProducto(numeros, tamano);

 

        Console.Write("Array ingresado: [");

        for (int i = 0; i < tamano; i++)

        {

            Console.Write(numeros[i]);

            if (i < tamano - 1) Console.Write(", ");

        }

        Console.WriteLine("]");

 

        Console.WriteLine($"Suma total: {resultado.suma}");

        Console.WriteLine($"Producto total: {resultado.producto}");

    }

 

    static (int suma, int producto) CalcularSumaYProducto(int[] array, int tamano)

    {

        int suma = 0;

        int producto = 1;

 

       for (int i = 0; i < tamano; i++)

        {

            suma += array[i];     

            producto *= array[i]; 

        }

 

        return (suma, producto);

    }

}

                MATRICES

En C#, las matrices (arrays multidimensionales) se manejan así de breve:

Declaración básica

int[,] matriz = new int[3, 4];  // 3 filas x 4 columnas

Acceso:[fila, columna]

matriz[0, 0] = 5;    // Fila 0, Columna 0

int valor = matriz[1, 2];  // Lee posición

 

BUCLES:

for (int fila = 0; fila < 3; fila++)

{

    for (int col = 0; col < 4; col++)

    {

        Console.Write(matriz[fila, col] + " ");

    }

    Console.WriteLine();  // Nueva línea por fila

}

EJEMPLO DE SUMA DE MATRICES

 

using System;

 

class Program

{

    static void Main()

    {

        Console.WriteLine("=== MATRIZ 3x3 - INGRESO Y SUMA ===");

 

        // Crear matriz 3x3

        int[,] matriz = new int[3, 3];

        int sumaTotal = 0;

 

        // FOR 1: INGRESAR datos

        for (int fila = 0; fila < 3; fila++)

        {

            for (int col = 0; col < 3; col++)

            {

                Console.Write($"Posición [{fila},{col}]: ");

                matriz[fila, col] = int.Parse(Console.ReadLine());

            }

        }

 

        // FOR 2: MOSTRAR matriz

        Console.WriteLine("\nTu matriz:");

        for (int fila = 0; fila < 3; fila++)

        {

            for (int col = 0; col < 3; col++)

            {

                Console.Write(matriz[fila, col] + " ");

            }

            Console.WriteLine();

        }

 

        // FOR 3: SUMAR todos los elementos

        for (int fila = 0; fila < 3; fila++)

        {

            for (int col = 0; col < 3; col++)

            {

                sumaTotal += matriz[fila, col];

            }

        }

 

        Console.WriteLine($"\nSuma total de elementos: {sumaTotal}");

    }

lunes, 26 de enero de 2026

JAVA: STRINGS

STRINGS

La clase String en Java ofrece numerosos métodos para manipular cadenas de texto de forma eficiente, ya que los objetos String son inmutables.

Obtención de Información

length(): Devuelve la longitud de la cadena (número de caracteres). Ejemplo: "Hola".length()retorna 4.

charAt(int index): Retorna el carácter en la posición especificada. Lanza StringIndexOutOfBoundsExceptionsi el índice es inválido.

​indexOf(char o String): Encuentra la primera posición de un carácter o subcadena; retorna -1 si no existe.

Extracción de subcadenas

substring(int beginIndex): Extrae desde beginIndexhasta el final.

substring(int beginIndex, int endIndex): Extrae desde beginIndexhasta endIndex - 1.

Modificación y Transformación

toUpperCase()/ toLowerCase(): Convierte a mayúsculas o minúsculas.

​trim(): Elimina espacios en blanco al inicio y final.

replace(char old, char new): Reemplaza todas las ocurrencias de un carácter.

​replaceAll(String regex, String replacement): Reemplaza usando expresiones regulares.

​replaceFirst(String regex, String replacement): Reemplaza solo la primera ocurrencia con expresiones regulares.

​Comparación

equals(Object obj): Compara contenido (distingue entre mayúsculas y minúsculas); usa equalsIgnoreCase()para ignorar mayúsculas/minúsculas.

​compareTo(String another): Compara lexicográficamente; retorna 0 si son iguales, negativo si menor, positivo si mayor.

División y Unión

split(String regex): Divide la cadena en un array usando un delimitador (regex).

​concat(String str): Concatena otra cadena (similar a +pero más eficiente para Múltiples operaciones).

Búsqueda Avanzada

startsWith(String prefix)/ endsWith(String suffix): Verifica si inicia o termina con una subcadena.

contains(CharSequence s): Verifica si contiene una subcadena.

matches(String regex): Verifica si coincide completamente con una expresión regular.

 CODIGO:

package calculos;

import java.util.Scanner;

public class NewMain1 {

    public static void main(String[] args) {

        System.out.println("escribe tu palabra");

        String cadena1= new String("hola");

       Scanner texto= new Scanner(System.in);

       cadena1=texto.nextLine();

       System.out.println("el contenido de la cadena "+cadena1);

       String nombre="fernando";

       //texto.close();// TODO code application logic here

       // int cantidad=nombre.length();

        System.out.println(cadena1.length());  

        String cadena2 = "Java es genial";

        int longitud = cadena2.length();

        System.out.println("Longitud: " + longitud);

        char letra =cadena1.charAt(0);

        System.out.println(letra);

        int indice=cadena1.indexOf('v');

        System.out.println(indice);

        int ultimo=cadena1.lastIndexOf('c');

        System.out.println(ultimo);

        cadena1=cadena1.toUpperCase();

        String cadena4=cadena1.toLowerCase();

        System.out.println(cadena1);

        System.out.println(cadena4);

        String textual="   vida feliz  ";

        textual=textual.trim();

        System.out.println(textual);

        textual=textual.replace('i','a');

        System.out.println(textual);

       textual=textual.substring(0,5);

        System.out.println(textual);

        String text="siempre joven";

        text=text.substring(5);

        System.out.println(text);

        String t1="hola";

        String t2="mundo";

        System.out.println(t1+t2);

        boolean as=t1.equals(t2);

        System.out.println(as);           

        System.out.println(t1.equals(t2));

    }