Manejo de Cadenas

ENTRADA y SALIDA.

Java Incorpora la Clase Scanner definida en el paquete java.util y muy adecuada para entrada en consola.

Salida formateada con printf

Java incluyo un método denominado printf, inspirado en la función clásica de la biblioteca C, que se puede utilizar para producir la salida en un formato especifico. La sentencia System.out.printf tiene un primer argumento que es la cadena, conocida como especificador de formato y el segundo argumento es el valor de salida en el formato establecido.

System.out.printf(“8.3%f”, x);

Imprime x con una anchura de campo de 8 caracteres y de precisión de 3.

Entrada.

Java incluyo en su versión 5.0 una clase para simplificar la entrada de datos por el teclado. Esta clase se llama Scanner y se conecta a System.in.

Para leer la entrada a la consolo, se debe construir primero un objeto Scanner, pasando simplemente el objeto System.in al constructor del Scanner.

Scanner entrada = new Scannner(System.in);

Diferentes métodos de la clase Scanner para leer la entrada: nextInt ó nextDouble leen el siguiente entero y siguiente valor flotante.

Ejemplo

System.out.print(“Introduzca cantidad: ”);
Int cantidad;
Cantidad =  entrada.nextInt();
System.out.print(“Introduzca precio: ”);
double precio = entrada.nextDouble();

Cuando se llama a uno de los métodos anteriores, el programa espera hasta que el usuario teclea un número y pulsa la tecla Enter.

El método nextLine lee una línea de entrada

System.out.print(“¿Escribe su nombre?”);
String nombre;
Nombre = entrada.nextLine();

El método next se emplea cuando se desea leer una palabra sin espacios.

String apellido = entrada.next();

La clase Scanner está definida en el paquete java.util y en Java siempre que se utiliza una clase que no está definida en el paquete básico java.lang se necesita utilizar una directiva import. La primera línea que se pone cerca del principio del archivo, indica a Java donde encontrar la definición de la clase Scanner:

Import java.util.Scanner;

Introducción a JAVA

Funciones matemáticas Y Manejo de cadenas

La clase math contiene una colección de funciones matemáticas que se pueden necesitar dependiendo  del tipo de programación que desea realizar. Por ejemplo. Para calculo xn.

Math.pow(x,n);

Sin embargo para calcular x2 puede ser más eficiente calcular x*x.

Tabla de las funciones matemáticas:

Métodos matemáticos.

sqrt(x)

Raíz cuadrada

pow(x,n)

Potencia

exp(x)

Elevar exponente a potencia x

log(x)

Logaritmo natural

round(x)

Entero más próximo a x

ceil(x)

Entero más pequeño

floor(x)

Entero más largo

abs(x)

Valor absoluto

max(x,y)

Valor mayor de x y y

min(x,y)

Valor menor de x y y

sin()

Seno de x

cos(x)

Coseno de x

tan(x)

Tangente de x

asin(x)

Arco seno de x

acos(x)

Arco coseno de x

atan(x)

Arco tangente de x

atan2(x,y)

Arco cuya tangente es x/y

toradianes(x)

Convierte x grados a radianes

todegrees(x)

Convierte x radianes a grados.

Cadenas

Las cadenas en java son secuencias de caracteres Unicode. Java no tiene un tipo cadena incorporado, sin embargo, existe en la biblioteca estándar de Java una clase denominada String, que está disponible cuando se programa en Java. Cada cadena entrecomillada es una instancia de la clase String.

Ejemplo:

String a = “”; //cadena vacia
String saludo = “hola”;

Se puede declarar una variable de tipo cadena

String ciudad;
 ciudad = “Cuernavaca”; 

O se puede juntar la declaración y asignación:

String ciudad = “Cuernavaca”;

Concatenación de Cadenas

Java, al igual que la mayoría de los lenguajes de programación, permite usar el operador + para unir(concatenar) dos cadenas.

String nombre = “Buenos días”;
String frase;
+ “, ¿cómo estás?”;
System.out.println(frase);

Cuando se concatena una cadena, con un valor que no es cadena, este valor se convierte en una cadena. Por ejemplo:

int edad = 19;
String nombre = “Paloma tiene ”+edad+” años.”;

Las cadenas son inmutables.

Un objeto de tipo String es un objeto inmutable, lo que significa que los caracteres del objeto String no se puede cambiar. No existe un método que cambie el valor de un objeto String.

Subcadenas de la clase String.

El método substring extrae una subcadena de una cadena de la siguiente forma:

String saludo = “Hola Judaga”;
String subcadena = saludo.subcadena(0,4);

Donde 0 es la posición inicial y 4 la Posición Final

H

o

l

a

j

u

d

a

g

a

0

1

2

3

4

5

6

7

8

9

10


Longitud y comparación de cadenas.

El método length() devuelve el número de caracteres de un objeto String como un valor de tipo int.

String saludo = “Hola Judaga”;
System.out.println(“La longitud es: ”+saludo.length());

Otra operación muy usada para trabajo con cadenas es la comparación de 2 cadenas, para ver si son iguales o son distintas. El método equals devuelve un true si son iguales o un false en caso contrario.

Sintaxis

Boolean equals(unaCadena);

Ejemplo:

String saludo = “Hola”;
Saludo.equals(“Hola”);// devuelve true
Saludo.equals(“Adios”);//devuelve false
Saludo.equals(“hola”);//devuelve false

equalsIgnoreCase.

Permite comparar dos cadenas y ver si son idénticas sin considerar la diferencia entre letras iguales mayúsculas y minúsculas.

Destacar:

No utilizar el operador == para comprobar si dos cadenas son iguales. Sólo se determina, en este caso, si las cadenas se almacenan en la misma posición. 

Métodos de la Clase String.

CharAt(posición)

Devuelve el carácter del objeto cadena que se encuentra en posición.

Int indexOf(String cad, int índiceFinal)

Devuelve el índice (posición) de la primera ocurrencia de la cadena cad,  en el objeto cadena llamador que ocurre en 0 después de la posición indiceFinal, regresa -1 cuando no encuentra ocurrencia.

Int lastindexOf(String cad)

Devuelve el índice (posición) de la primera última de la cadena cad,  en el objeto cadena llamador que ocurre en 0 después de la posición indiceFinal, regresa -1 cuando no encuentra ocurrencia.

String tolowerCase()

Devuelve una nueva cadena que contiene todos los caracteres de la cadena original, con los caracteres a mayúsculas convertidos a letras minúsculas.

String toupperCase()

Devuelve una nueva cadena que contiene todos los caracteres de la cadena original, con los caracteres a minúsculas convertidos a letras mayúsculas.

String trim()

Devuelve  una cadena eliminando todos los espacios al principio y al final de la cadena original.

Ejemplos

import java.lang.Math;
import java.io.*;
import java.util.Scanner;
class ejemplo2
{
   public static void main(String args[])
   {
     /*Funcione Matematicas*/
     System.out.println("PI: "+Math.PI);
     System.out.println("Pow(2,3): "+Math.pow(2,3));
     System.out.println("Round(8.5): "+Math.round(8.5));
     System.out.println("Round(8.4): "+Math.round(8.4));
     System.out.println("Ceil(8.3): "+Math.ceil(8.3));
     System.out.println("Floor(8.8): "+Math.floor(8.8));
     System.out.println("max(4,8): "+Math.max(4,8));
     System.out.println("min(4,8): "+Math.min(4,8));
     System.out.println("abs(-2): "+Math.abs(-2));
     System.out.println("abs(+2): "+Math.abs(+2));

     /*Cadenas*/
     String saludo = "Hola";
     String frase = saludo + ", ¿Como Estas?";
     System.out.println(frase);

     System.out.println("Dame tu nombre: ");
     Scanner teclado = new Scanner(System.in);
     String nombre = teclado.nextLine();
     System.out.println("Bienvenido, "+nombre);
     System.out.println("Dame numero 1: ");
     int numero1 = teclado.nextInt();
     System.out.println("Dame numero 2: ");
     int numero2 = teclado.nextInt();
     System.out.println("max("+numero1+","+numero2+"): "+Math.max(numero1,numero2));     
     System.out.println("min("+numero1+","+numero2+"): "+Math.min(numero1,numero2));
   }
}

Ejemplo Menu

Crear un Menu como el siguiente:

  1. Sumar
  2. Restar
  3. Multiplicar
  4. Dividir
  5. Salir
Seleccione su Opción


import java.lang.Math;
import java.io.*;
import java.util.Scanner;
class ejemplo4
{
   public static void main(String args[])
   {
     Scanner teclado = new Scanner(System.in);
     int opcion = 0;
     int opcion_error = 0;//bandera de error
     do
     {
       
       /*
       opcion_error = 0 => correcto
       opcion_error = 1 => incorrecto
       */
       imprime("1) Sumar");
       imprime("2) Restar");
       imprime("3) Multiplicar");
       imprime("4) Dividir");
       imprime("5) Salir");
       imprime("Dame que opcion quieres realizar: ");
         try
         {
           opcion = teclado.nextInt();
         }
         catch(Exception ex)
         {
           imprime("Por favor, da un numero entre 1 y 5:" );
           teclado.next();
           opcion = 0;
         }
         int numero1 = 0;
         int numero2 = 0;
         if(opcion>0 && opcion<5)
         {
           imprime("Escribe el numero: ");
           numero1 = teclado.nextInt();
           imprime("Escribe el numero2: ");
           numero2 = teclado.nextInt();
         }
         switch(opcion)
         {
           case 1:
             imprime("La suma es: "+(numero1+numero2));
           break;
           case 2:
             imprime("La resta es: "+(numero1-numero2));
           break;
           case 3:
             imprime("La multiplicación es: "+(numero1*numero2));
           break;
           case 4:
             imprime("La división es: "+(numero1/numero2));
           break;
           case 5:
             imprime("Hasta Luego...");
           break;
           default:
             imprime("No ha elegido una opcion correcta");
           break;
         }
             
     }while(opcion!=5);
   }
   public static void imprime(String mensaje)
   {
     System.out.println(mensaje);
   }
}