Está en la página 1de 4

Arrays y cadenas de

caracteres (String)
Tanto los arrays como las cadenas son tipos
de objetos privilegiados en Java ya que
existen facilidades que simplifican su manejo
Por ejemplo se proporcionan primitivas que
simplifican su creacin y su inicializacin

Cadenas y Arrays

La clase String se incluye en el API estndar


de Java dentro del paquete bsico java.lang

Java

Arrays y Cadenas

Strings

Arrays y Cadenas

Cadenas

La clase java.lang.String implementa


cadenas
Las cadenas son objetos constantes e
inmutables
n

Java

Creacin de cadenas
n

String saludo = hola; // creacin de una cadena


asignando un literal

Su tamao es constante
Cambiar una cadena significa construir una
nueva

String cadena = new String(); // creacin de una


cadena vaca
Diversos constructores
w String( String cadena );
w String( char array[] );
w String( char array[],int desplazamiento,int cuenta );

Longitud de la cadena con el mtodo length()


w System.out.println(longitud de la cadena: +
saludo.length());

Java

Arrays y Cadenas

Comparacin de cadenas

Java

Arrays y Cadenas

Se pueden concatenar con el operador +


n

Con == se comparan referencias


Se diferencia entre maysculas y minsculas

Con equalsIgnoreCase() no se diferencia


entre maysculas y minsculas
Con compareTo() se obtiene <0, 0, >0
segn el argumento sea menor, igual o
mayor que la cadena
Con toLowerCase() y con toUpperCase() se
convierte una cadena a minculas o
maysculas respectivamente

Arrays y Cadenas

Operaciones con cadenas

Con equals() se sabe si dos cadenas son


iguales
n

Java

Es el nico operador sobrecargado en Java


w saludo = saludo + que tal;

Cuando se concatenan cadenas se realiza copia de


los operandos
Una cadena se puede concatenar con cualquier
otro valor de otro tipo de datos

Con charAt(indice ) se obtiene el carcter


situado en la posicin ndice de la cadena
n

La primera posicin de una cadena, si existe, es la


posicin 0

Tiene otros muchos mtodos de utilidad =>


consultar en laJava
API de Java
Arrays y Cadenas

Cadenas y objetos
n

Conversin de Cadenas

Con valueOf() se obtiene una


representacin de cadena de una variable
u objeto
w Conversin directa de un tipo bsico en cadena
w Llamada a toString() para cualquier otro objeto

Todos los objetos tienen el mtodo


toString() heredado de Object
w Redefiniendolo se puede obtener una

representacin como cadena del objeto (muy


til en depuracin)
Java

Arrays y Cadenas

Integer(String s); //String a Integer


Integer(int i);
//primitivo a Integer
Integer.valueOf("4"); //String a Integer
int i = 4;
Integer objInt = new Integer(i);
int j = objInt.intValue(); //Integer a
primitivo
String s = objInt.toString(); //Integer a
String
int k = Integer.parseInt("4"); //String a
primitivo

Cadenas y objetos

Java

Arrays y Cadenas

API de String
Method Summary

public class
class Punto
Punto {{
public
int x;
x;
int y;
y;
int
int
public Punto(int
Punto(int x,
x, int
int y)
y) {{ this.x
this.x == x;
x;
public
this.y == y;}
y;}
this.y
public String
String toString()
toString() {{
public
return Punto[
Punto[ ++ xx ++ ,
, ++ yy ++
return
]; }}
];
public static
static void
void main(String
main(String args[])
args[]) {{
public
Punto punto
punto == new
new Punto(2,3);
Punto(2,3);
Punto
System.out.println( "visualizar
"visualizar datos
datos
System.out.println(
del punto+
punto+ punto
punto );}}
);}}
del

char charAt(int index)


Returns the character at the specified index.
int compareTo(Object o )
Compares this String to another Object.
int compareTo(StringanotherString )
Compares two strings lexicographically.
int compareToIgnoreCase(String str )
Compares two strings lexicographically, ignoring case considerat ions.
String concat(String s t r)
Concatenates the specified string to the end of this string.
boolea
n

contentEquals(StringBuffersb)
Returns true if and only if this String represents the same sequence of characters as the specified StringBuffer.

static St copyValueOf(char[] data)


ring
Returns a String that represents the character sequence in the array specified.
static St copyValueOf(char[] data, int offset, int count)
ring
Returns a String that represents the character sequence in the array specified.
boolea endsWith (String suffix)
n
Tests if this string ends with the specified suffix.
boolea equals(Object anObject )
n
Compares this string to the specified object.

Java

Arrays y Cadenas

Arrays

boolea equalsIgnoreCase(String anotherString )


n
Compares this String to another String, ignoring case considerations.

Java

Arrays y Cadenas

10

Arrays

Coleccin de variables todas del mismo tipo

int iArray[] = new int[3]; // array of 3 ints

w Tamao fijo
w Pueden ser variables simples o referencias a objetos

iArray

Declaracin de variables array: dos


alternativas
w tipoValor [] variableArray;
w tipoValor variableArray [];

n
n

int vector[];
int [] vector;
int vector[10];
en la declaracin
Java

// vector es un array de enteros


// igual que la declaracin anterior
// ERROR: no se especifica el tamao
Arrays y Cadenas

iArray[1]

Array de tipos bsicos de datos


n

11

iArray[0]

Java

iArray[2]

Arrays y Cadenas

12

Arrays

Arrays
Empleado[ ]

empArray = new Empleado[5];

Definicin: reserva de la memoria para


el array
n

Antes de usarse, un array tiene que


crearse (con new):
int vector[] = new int[10];
vector[0]..vector[9]
n

empArray
null

// array de 10 enteros:

En este momento se especifica el tamao


del array (que no forma parte del tipo de
datos)
Java

Arrays y Cadenas

13

Java

primer elemento indice 0

n
n

Declaracin de arrays de objetos

int [] array;
// reserva de memoria
array= new int[10];

w String S[];
// un array de cadenas -- Referencias a
cadenas
w String S,T[]; // S es una cadena y T un array de
cadenas
w String[] S,T; // Ambos, S y T, son arrays de cadenas

Arrays y Cadenas

15

Java

n
n

n
n

String [] arrayCadenas ;
// Definicin: reserva de memoria para las
referencias a los objetos
arraysCadenas = new String[10];
// iniacilizacin reserva de memoria para los objetos
del array
for (int i=0; i<arrayCadenas .length; i++)
arrrayCadenas [i] = new String();

Java

9 Arrays y Cadenas

array

Arrays y Cadenas

null9
null
null

0
1
2

null

16

Tamao de un array: miembro length


n
n
n

A.length // correcto
A.length() // ERROR: no se usan parntesis
for (int i = 0; i < A.length; i++) A[i]=i;

Comprobacin automtica de lmites del


array
w Si se intenta acceder fuera de los lmites del

array (entre 0 y length-1), se produce la


excepcin IndexOutOfBoundsException.

0
1
2

arrayCadenas

0
1
2

null

Arrays

Objetos
n

array

arrayCadenas

Arrays de tipos simples y de


objetos
n

14

Tipos simples

Acceso a los elementos del array


n variableArray [indice]

Java

Arrays y Cadenas

Arrays de tipos simples y de


objetos

Acceso a los elementos y arrays


de objetos

null

17

Java

Arrays y Cadenas

18

Arrays
n

Arrays multidimensionales

Se puede especificar una lista de inicializacin


n int[] arrayNumeros = { 147, 323, 89 };
w No se utiliza el operador new y no se especifica el
tamao
El paso de los arrays a los mtodos es por referencia
w Se pasa la referencia al array (como con todos los
objetos)
El tamao del array no es parte del tipo
w Una variable de tipo String[] puede almacenar
cualquier array de cadenas de cualquier tamao

Array de arrays
n

Declaracin, definicin e inicializacin


n
n
n
n

Cada fila puede tener un tamao diferente


w Si todas las filas tienen el mismo tamao
n

Arrays y Cadenas

19

Arrays multidimensionales
n

array = new int[2][5]; // lo mismo que las dos sentencias


anteriores

Se permiten declaraciones parciales en las que al


final pueden existir dimensiones sin especificar
n

Java

int[][] array; // creacin de la referencia


array = new int[2]; // array con dos filas
for (int i = 0; i < array.length; i++)
array[i] = new int[5]; // cada fila puede tener distinto
tamao

int[][] arrayPar = new int[3][];


Java

Arrays y Cadenas

20

Arrays multidimensionales

Inicializacin mediante listas


w int[][] array = { {79, 87, 94, 82, 67}, {98, 87, 81, 74, 91} };

Una vez que se reserva el espacio de memoria


el tamao de un array no puede cambiar
n
n

array

79 87 94 82 67
0,0

0,1

0,2

0,3

0,4

Java

98 87 81 74 91
1,0

Arrays y Cadenas

1,1

1,2

1,3

String[] miArray = new String[20];


miArray = new String[10]; // correcto se pierde la
referencia al array anterior
miArray.length = 30; // ERROR - no permitido

1,4

21

Java

Arrays y Cadenas

22

Arrays
Lmites de los arra.y
n
n

Todos los vectores empiezan por 0.


El nmero de elementos del vector se almacena
en el atributo length del propio vector.

Un array no se puede redimensionar


Se puede utilizar la misma variable referencia
para apuntar a otro vector diferente:
int elements [ ] = new int [6];
elements = new int [10];
Java

Arrays y Cadenas

23

También podría gustarte