Blogia
Ronny Estredo

Sesión 3. JAVA.

Sesión 3. JAVA.

Las Cadenas en Java.

Hasta ahora hemos visto tipos de datos numéricos en nuestros ejercicios, sin embargo, frecuentemente se hace necesario utilizar datos alfanúmericos o cadenas.  Java maneja las cadenas muy diferente a otros lenguajes.

En Java las cadenas son objetos de las clases predefinida String o StringBuffer, que están incluidas en el paquete java.lang.*. (El paquete de lenguaje Java, también conocido como java.lang, contiene las clases que son el corazón del lenguaje Java.)

Siempre que aparecen conjuntos de caracteres entre comillas dobles, el compilador de Java crea automáticamente un objeto String.
Los caracteres de las cadenas tienen un índice que indica su posición. El primer carácter de una cadena tiene el índice 0, el segundo el 1, el tercero el 2 y así sucesivamente. Esto puede sonar familiar a los programadores de C/C++

Como se declara?

String variableCad = new String("Valor Cadena");

También se puede escribir, alternativamente

    String str="Valor Cadena";

Para crear un string nulo se puede hacer de estas dos formas

    String str="";
    String str=new String();

Un string nulo es aquél que no contiene caracteres, pero es un objeto de la clase String. Sin embargo,

    String str;

está declarando un objeto str de la clase String, pero aún no se ha creado ningún objeto de esta clase.
Observamos que al declarar ademas podemos asignar  una  valor fijo o inicial (no obligatorio).

Aquí hay 5 Operaciones básicas, comunes a String y StringBuffer:

length()    Devuelve el número de caracteres de la cadena.
charAt(n)    Donde n  es un número que indica la posición dentro de la cadena
substring(inicio,fin)    Devuelve una subcadena desde una posicion inicial hasta una posición final
toLowerCase()    Devuelve una conversion en minúsculas de la cadena
toUpperCase()    Devuelve una conversion en mayúsculas de la cadena

Ejemplificación de casos  aplicados a cadenas.

Cómo se obtiene información acerca del string

Una vez creado un objeto de la clase String podemos obtener información relevante acerca del objeto a través de las funciones miembro.

Para obtener la longitud, número de caracteres que guarda un string se llama a la función miembro length.

    String str="El primer programa";
    int longitud=str.length();
Podemos conocer si un string comienza con un determinado prefijo, llamando al método startsWith, que devuelve true o false, según que el string comience o no por dicho prefijo

    String str="El primer programa";
    boolean resultado=str.startsWith("El");

En este ejemplo la variable resultado tomará el valor true.
De modo similar, podemos saber si un string finaliza con un conjunto dado de caracteres, mediante la función miembro endsWith.

    String str="El primer programa";
    boolean resultado=str.endsWith("programa");
Si se quiere obtener la posición de la primera ocurrencia de la letra p, se usa la función indexOf.

    String str="El primer programa";
    int pos=str.indexOf(’p’);
Para obtener las sucesivas posiciones de la letra p, se llama a otra versión de la misma función

    pos=str.indexOf(’p’, pos+1);
El segundo argumento le dice a la función indexOf que empiece a buscar la primera ocurrencia de la letra p a partir de la posición pos+1.

Otra versión de indexOf busca la primera ocurrencia de un substring dentro del string.

    String str="El primer programa";
    int pos=str.indexOf("pro");
Vemos que una clase puede definir varias funciones miembro con el mismo nombre pero que tienen distinto número de parámetros o de distinto tipo.

La comparación de strings nos da la oportunidad de distinguir entre el operador lógico == y la función miembro equals de la clase String. En el siguiente código

        String str1="El lenguaje Java";
        String str2=new String("El lenguaje Java");
    if(str1==str2){
        System.out.println("Los mismos objetos");
    }else{
        System.out.println("Distintos objetos");
    }
    if(str1.equals(str2)){
        System.out.println("El mismo contenido");
    }else{
        System.out.println("Distinto contenido");
    }        

Esta porción de código devolverá que str1 y str2 son dstintos objetos pero con el mismo contenido. str1 y str2 ocupan posiciones distintas en memoria pero guradan los mismos datos.

Cambiemos la segunda sentencia y escribamos

        String str1="El lenguaje Java";
        String str2=str1;
    System.out.prinln("Son el mimso objeto "+(str1==str2);

Los objetos str1 y str2 guardan la misma referencia al objeto de la clase String creado. La expresión (str1==str2) devolverá true.

Asñi pues, el método equals compara un string con un objeto cualquiera que puede ser otro string,  y devuelve true cuando dos strings son iguales o false si son distintos.

        String str="El lenguaje Java";
    boolean resultado=str.equals("El lenguaje Java");

La variable resultado tomará el valor true.
        
Ejercicio  práctica.

Programa que lee el nombre de un empleado, los días que trabajó y el sueldo diario.  Calcula

Su sueldo básico.
Deducción de SSO 4% del Sueldo Básico.
Deducción de LPH 1% del Sueldo Básico.
Deducción de PF 0.5% del Sueldo Básico.
Total de Deducciones.
Y Calcula un Bono del 30% sobre el Sueldo Básico.

(La finalidad es  

import java.util.Scanner;
public class ronny {

    public static void main(String[] args) {
        Scanner teclado=new Scanner(System.in);
        String nombreEmp = new String();
        int sb,dt,sd;
        float sso,lph,pf,td,bono;

           System.out.println("PRUEBA DE DATOSS EN JAVA por " + nombreEmp);
        System.out.print("Ingrese Ingrese el nombre del empleado:");
        nombreEmp=teclado.next();
        System.out.print("Ingrese la cantidad de dias trabajados por el empleado:");
        dt=teclado.nextInt();

        System.out.print("Ingrese la lo ganado diario por el empleado:");
        sd=teclado.nextInt();
        sb=sd*dt;
        sso=sb*4/100;
        lph=sb*1/100;
        pf=sb*0.5f/100;
        td=sso+lph+pf;
        bono=sb*30/100;
        System.out.println("Recibo de Pago del Empleado: " + nombreEmp.toUpperCase());
        System.out.println("El sueldo básico a pagar es :" +sb);
        System.out.println("la deduccion de seguro es  :" +sso);
        System.out.println("la deduccion de ley politica es  :" +lph);
        System.out.println("la deduccion de paro forsozo es  :" +pf);
        System.out.println("__________________________________________" );
        System.out.println("EL TOTAL DE DEDUCCIONES A PAGAR ES :" +td);
        System.out.println("__________________________________________" );
        System.out.println("tiene un Bono de 30% correspondiente a Bs.:" +bono);
    }
}



La finalidad del ejercicio es integrar diferentes tipos de datos, hacer cálculos aritméticos entre ellos  y poner a prueba los métodos de la clase string

¿Y esta publicidad? Puedes eliminarla si quieres
¿Y esta publicidad? Puedes eliminarla si quieres

1 comentario

Junior -

Buen día
¿Y esta publicidad? Puedes eliminarla si quieres