Sunteți pe pagina 1din 10

CLASE STRING

Un objeto de la clase String representa una cadena alfanumérica de un valor constante.


La mayoría de las funciones relacionadas con cadenas esperan valores String como
argumentos y devuelven valores String.

Para crear un String explícitamente se escribe:


String cadena="Texto en String";

También se puede escribir, alternativamente


String cadena=new String("Texto en String");

Funciones con cadenas:

1. Para obtener la longitud, número de caracteres que guarda un string se llama a la


función miembro length.

String cadena="Texto del string";


int longitud=cadena.length();

2. Para extraer una porción de un string dado, hay una función miembro de la
clase String denominada substring.

Para extraer un substring desde una posición determinada hasta el final del string,
se escribe:

String cadena="El lenguaje Java";


String cadena1=cadena.substring(12);

Se asignará la cadena "Java" a la variable cadena1.


No olvidar que las posiciones se empiezan a contar desde Cero.

Una segunda versión de la función miembro substring, permite extraer un substring


especificando la posición de comienzo y la posición final.

String cadena="El lenguaje Java";


String cadena1=cadena.substring(3, 11);

Se asignará la cadena "lenguaje" a la variable cadena1.

3. El método concat permite concatenar dos String.

String s = "El lenguaje";


s = s.concat(" Java");
System.out.println(s);

Se imprime: El lenguaje Java


4. Los métodos toUpperCase y toLowerCase permiten convertir la cadena a
mayúsculas o minúsculas, respectivamente.

String Str = new String("bienvenidos");


System.out.println(Str.toUpperCase());

Se imprime: BIENVENIDOS

5. Para conocer si un string comienza con un determinado prefijo, se utiliza el


método startsWith, que devuelve true o false, según que el String comience o no
con dicho prefijo.

String cadena="El primer programa";


boolean resultado=cadena.startsWith("El");

En este ejemplo la variable resultado tomará el valor true.

6. De modo similar, se puede saber si un string finaliza con un conjunto dado de


caracteres, mediante la función miembro endsWith.

String cadena="El primer programa";


boolean resultado=cadena.endsWith("programa");

7. Si se quiere obtener la posición de la primera ocurrencia de la letra p, se usa la


función indexOf.

String cadena="El primer programa";


int pos=cadena.indexOf('p');

Para obtener las sucesivas posiciones de la letra p, se llama a otra versión de la misma
función:
pos=cadena.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 cadena="El primer programa";


int pos=cadena.indexOf("pro");

8. Con el método replace, se puede reemplazar un char por otro en una cadena.

String s1="Lenguaje";
String replaceString=s1.replace('e','a');
System.out.println(replaceString);

Dará como resultado: Languaja


9. La comparación de String permite distinguir entre el operador lógico == y la función
miembro equals de la clase String. En el siguiente código:

String cadena1="El lenguaje Java";


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

Esta porción de código devolverá que cadena1 y cadena2 son distintos objetos (ocupan
posiciones distintas en memoria), pero con el mismo contenido (guardan los mismos
datos).

10. La clase String posee el método valueOf para transformar valores de otros tipos
de datos a su representación como cadena.

• String.valueOf( boolean b );
• String.valueOf( int i );
• String.valueOf( float f );
• String.valueOf( double d );
Por ejemplo:
float f = 3.141592f;
String StrPI = String.valueOf( f );

11. Para eliminar los espacios en blanco al inicio y al final de una cadena, se tiene a la
función miembro trim.

String cadena=" 12 ";


String cadena1=cadena.trim();

Para convertir un string en número entero, primero se quita los espacios en blanco al
principio y al final y luego, se llama a la función miembro estática parseInt de la
clase Integer (clase envolvente que describe los números enteros)

String cadena=" 12 ";


int numero=Integer.parseInt(cadena.trim());
Otra manera de hacerlo es mediante dos pasos: convertir el string en un objeto de la clase
envolvente Integer, mediante la función miembro estática valueOf, y a continuación
convertir el objeto de la clase Integer en un tipo primitivo int mediante la función intValue.

String cadena=" 12 ";


int numero=Integer.valueOf(cadena.trim()).intValue();

ARRAY

Un array es un medio para guardar un conjunto de objetos de la misma clase. Se accede


a cada elemento individual del array mediante un número entero denominado índice.
0 es el índice del primer elemento y n-1 es el índice del último elemento, siendo n, la
dimensión del array.
Para declarar un array de enteros con el nombre números, se escribe:

int [ ] numeros;
int numeros [ ];

Para crear un array de 4 números enteros se escribe:

numeros=new int[4];

La declaración y la creación del array se pueden hacer en la misma línea.

int [ ] numeros =new int[4];

Para inicializar el array de 4 enteros se escribe:


numeros[0]=2;
numeros[1]=-4;
numeros[2]=15;
numeros[3]=-25;

Se pueden inicializar en un bucle for como resultado de alguna operación:

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


{
numeros[i]=i*i+4;
}

No es necesario recordar el número de elementos del array, length proporciona la


dimensión del array.

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


{
numeros[i]=i*i+4;
}
Los arrays se pueden declarar, crear e inicializar en una misma línea, del siguiente modo:

int[ ] numeros = {2, -4, 15, -25};


String[ ] nombres = {“Juan”, “José”, “Miguel”, “Antonio”};

Para imprimir los elementos de array nombres se escribe

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


{
System.out.println(nombres[i]);
}

ARRAY MULTIDIMENSIONAL

En Java es posible crear arrays con más de una dimensión, pasando de la idea de lista,
vector o matriz de una sola fila a la idea de matriz de m x n elementos, estructuras
tridimensionales, tetradimensionales, etc. La sintaxis es:

Tipo_de_variable[ ][ ] … [ ] Nombre_del_array;
Nombre_del_array = new Tipo_de_variable[dimensión1][dimensión2]…[dimensiónN];

También se puede usar esta declaración:

Tipo_de_variable[ ][ ]… [ ] Nombre_del_array = new


Tipo_de_variable[dimensión1][dimensión2]…[dimensiónN];

Por ejemplo:
int[][] edad = new int[4][3];

Una matriz bidimensional puede tener varias filas, y en cada fila no tiene por qué haber el
mismo número de elementos o columnas.
Los índices empiezan a partir de Cero y se indican entre corchetes.
El primer índice indica la fila y el segundo la columna.
Por ejemplo:

double [][] matriz={{1,2,3,4},{5,6},{7,8,9,10,11,12},{13}};

Para mostrar los elementos del array bidimensional, se escribe el siguiente código

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


{
for (int j=0; j < matriz[i].length; j++)
{
System.out.print(matriz[i][j]+ “\t”);
}
System.out.println(“”);
}
CLASE MATH

Math es una clase que proporciona operaciones matemáticas más complejas:

Datos constantes:
La clase Math define dos constantes muy útiles, el número pi y el número e.

public final class Math {


public static final double E = 2.7182818284590452354;
public static final double PI = 3.14159265358979323846;
//...
}

Se accede a estas constantes desde la clase Math, de la siguiente forma


System.out.println("Pi es " + Math.PI);
System.out.println("e es " + Math.E);

Ejemplos:

1. En este caso, dependiendo del tipo de dato que se le pasa, el resultado será el
valor absoluto en el mismo tipo de dato.
int i = -9;
double x = 0.3498;
System.out.println("|" + i + "| es " + Math.abs(i));
System.out.println("|" + x + "| es " + Math.abs(x));

2. El ángulo 45º se convierte en radianes y luego se halla el seno, el coseno y la


tangente

double angulo = 45.0 * Math.PI/180.0;


System.out.println("cos(" + angulo + ") es " + Math.cos(angulo));
System.out.println("sin(" + angulo + ") es " + Math.sin(angulo));
System.out.println("tan(" + angulo + ") es " + Math.tan(angulo));

3. La función exponencial exp devuelve el número e elevado a una potencia

System.out.println("exp(1.0) es " + Math.exp(1.0));


System.out.println("exp(10.0) es " + Math.exp(10.0));
System.out.println("exp(0.0) es " + Math.exp(0.0));
4. Para elevar un número x a la potencia y, se emplea pow(x, y)

System.out.println("10 elevado a la 3.5 es " + Math.pow(10.0,3.5));

5. Para hallar la raíz cuadrada de un número, se emplea la función sqrt

System.out.println("La raíz cuadrada de " + x + " es " + Math.sqrt(x));

6. Para expresar un número real con un número especificado de números decimales


se emplea la función round. Por ejemplo, para expresar los números x e y con dos
cifras decimales, se escribe:

double x = 72.3543;
double y = 0.3498;
System.out.println(x + " es aprox. " + (double)Math.round(x*100)/100);
System.out.println(y + " es aprox. " + Math.round(y*100)/100.0);

Se obtiene 72.35 y 0.35.


Nótese que round devuelve un número entero int que es necesario convertir
a double para efectuar la división entre 100. La opción de colocar 100.0 en el
denominador también es válida.

7. Si se emplea la función floor en vez de round se obtiene 72.35 y 0.34.

System.out.println(x + " es aprox. " + (double)Math.floor(x*100)/100);


System.out.println(y + " es aprox. " + Math.floor(y*100)/100.0);

8. Para hallar el mayor y el menor de dos números se emplean las


funciones min y max que comparan números del mismo tipo.

int i = 7;
int j = -9;
double x = 72.3543;
double y = 0.3498;
// para hallar el menor de dos números
System.out.println("min(" + i + "," + j + ") es " + Math.min(i,j));
System.out.println("min(" + x + "," + y + ") es " + Math.min(x,y));
// Para hallar el mayor de dos números
System.out.println("max(" + i + "," + j + ") es " + Math.max(i,j));
System.out.println("max(" + x + "," + y + ") es " + Math.max(x,y));

9. La clase Math define una función denominada random que devuelve un número
pseudoaleatorio comprendido en el intervalo [0.0, 1.0).

System.out.println("Número aleatorio: " + Math.random());


System.out.println("Otro número aleatorio: " + Math.random());
EXCEPCIONES

En Java los errores en tiempo de ejecución se denominan excepciones, y esto ocurre


cuando se produce un error en alguna de las instrucciones del programa, como por
ejemplo cuando se hace una división entre cero, cuando un objeto es 'null' y no puede
serlo, cuando no se abre correctamente un fichero, etc. Cuando se produce
una excepción se muestra en la pantalla un mensaje de error y finaliza la ejecución del
programa. Por ello en java se dispone de un mecanismo consistente en el uso de bloques
try/catch/finally.

La estructura del bloque try/catch/finally es la siguiente:

try
{
//Código que puede provocar errores
}
catch(Tipo1 var1)
{
//Gestión del error var1, de tipo Tipo1
}
….
catch(TipoN varN)
{
//Gestión del error varN, de tipo TipoN
}
finally
{
//Código de finally
}

Es obligatorio que exista la zona try, o zona de pruebas, donde se colocan las
instrucciones problemáticas. Después vienen una o más zonas catch, cada una
especializada en un tipo de error o excepción. Por último está la zona finally, encargada
de tener un código que se ejecutará siempre, independientemente de si se produjeron o
no errores.

Se puede apreciar que cada catch se parece a una función en la cual sólo se recibe un
objeto de un determinado tipo, precisamente el tipo del error. Es decir, sólo se llamará al
catch cuyo argumento sea coincidente en tipo con el tipo del error generado.

Entre las excepciones más utilizadas, se tiene:

ArithmeticException

Las excepciones aritméticas son típicamente el resultado de división por 0:

int i = 12 / 0;
NullPointerException

Se produce cuando se intenta acceder a una variable o método antes de ser definido

ArrayIndexOutOfBoundsException

Se genera al intentar acceder a un elemento de un array más allá de los límites definidos
inicialmente para ese array.

ClassCastException

El intento de convertir un objeto a otra clase que no es válida.

IllegalArgumentException

Lanzado cuando un método recibe un argumento formateado de diferente manera del que
el método espera.

StackOverflowError

Típicamente lanzado cuando un método es muy recursivo y cada llamada se va


añadiendo al stack.

InternalException

Este error se reserva para eventos que no deberían ocurrir. Por definición, el usuario
nunca debería ver este error y esta excepción no debería lanzarse.

Ejemplos:

public class Try2


{
public static void main(String arg[])
{
int [] array = new int[20];
try
{
array[-3] = 24;
}
catch(ArrayIndexOutOfBoundsException excepcion)
{
System.out.println(" Error de índice en un array");
}
}
}
Se puede tener un solo catch que capture todos los errores, independientemente del tipo
del error.

public class Try4


{
public static void main(String arg[])
{
int [] array = new int[20];
try
{
// array[-3] = 24;
/* int b = 0;
int a = 23/b; */
String s = null;
s.equals("QQQQ");
}
catch(ArrayIndexOutOfBoundsException excepcion)
{
System.out.println(" Error de índice en un array");
}
catch(ArithmeticException excepcion)
{
System.out.println(" Error de división por cero");
}
catch(Exception excepcion)
{
System.out.println("Se ha generado un error que no es de índices, ni
Aritmético");
System.out.println("El objeto error es de tipo " + excepcion);
}
}
}

La clase Exception proporciona algunos métodos de utilidad, por ejemplo


printStackException que muestra el volcado de pila con todas las funciones que están
siendo llamadas en el momento en el que se lanzó el error:

try
{
array[-3] = 24;
}
catch(Exception excepcion)
{
excepcion.printStackTrace();
}

S-ar putea să vă placă și