Sunteți pe pagina 1din 11

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]);
}
MATRIZ 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 será:

Tipo_de_variable[ ][ ]… [ ] Nombre_del_array = new


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

También podemos usar esta declaración:

Tipo_de_variable[ ][ ] … [ ] Nombre_del_array;
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 escribimos 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á 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("pow(10.0, 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 + " is " +


Math.sqrt(x));
6. Para expresar un número real con un número especificado de números decimales
empleamos la función round. Por ejemplo, para expresar los números x e y con dos
cifras decimales escribimos

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 como cabría esperar. Fijarse que round devuelve un número
entero int que es necesario promocionar 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 empleamos la función floor en vez de round obtendríamos 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úmero
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());
CLASE STRING

Un objeto 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 escribimos


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

También se puede escribir, alternativamente


String cadena="Texto en String";

Funciones Básicas:
• int length();
• String substring( int beginindex );
• String substring( int beginindex,int endindex );
• String concat( String str );
• String replace( char oldchar,char newchar );
• String toLowerCase();
• String toUpperCase();
• int compareTo( String str2 );

La clase String posee numerosas funciones para transformar valores de otros tipos de
datos a su representación como cadena. Todas estas funciones tienen el nombre de
valueOf, estando el método sobrecargado para todos los tipos de datos básicos.

• String.valueOf( boolean b );
• String.valueOf( int i );
• String.valueOf( long l );
• String.valueOf( float f );
• String.valueOf( double d );

Por ejemplo:
float f = 3.141592f;
String StrPI = String.valueOf( f );

Ejemplos:

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. 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 cadena="El primer programa";


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

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


3. De modo similar, podemos 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");

4. 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");

Vemos que una clase puede definir varias funciones con el mismo nombre pero que
tienen distinto número de parámetros o de distinto tipo.

5. 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 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 pero con
el mismo contenido. cadena1 y cadena2 ocupan posiciones distintas en memoria pero
guardan los mismos datos.
6. 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
escribimos;

String cadena="El lenguaje Java";


String cadena1=cadena.substring(12);

Se obtendrá el substring "Java".

Una segunda versión de la función miembro substring, nos permite extraer un substring
especificando la posición de comienzo y la el final.

String cadena="El lenguaje Java";


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

Se obtendrá el substring "lenguaje". Recuerde que las posiciones se empiezan a contar


desde Cero.

7. Cuando introducimos caracteres en un control de edición a veces es inevitable que


aparezcan espacios ya sea al comienzo o al final. Para eliminar estos espacios
tenemos la función miembro trim

String cadena=" 12 ";


String cadena1=cadena.trim();

Para convertir un string en número entero, primero quitamos los espacios en blanco al
principio y al final y luego, llamamos 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());

Para convertir un string en número decimal (double) se requieren dos pasos: convertir el
string en un objeto de la clase envolvente Double, mediante la función miembro
estática valueOf, y a continuación convertir el objeto de la clase Double en un tipo
primitivo double mediante la función doubleValue

String cadena="12.35 ";


double numero=Double.valueOf(cadena).doubleValue();

Se puede hacer el mismo procedimiento para convertir un string a número entero

String cadena="12";
int numero=Integer.valueOf(cadena).intValue();
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 disponemos 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
}

Como podemos ver es obligatorio que exista la zona try, o zona de pruebas, donde
pondremos 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 recibimos 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, tenemos:

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");
}
}
}
Los tipos de error que se generan son todos ellos clases, que heredan de la clase
java.lang.Exception, por lo tanto podríamos crear nuestro propios errores personalizados.
Al igual que podríamos 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 índice en un
array");
}
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