19 - la clase string

5
13/02/12 1 La clase String Curso de Programación en Java Jesús Montes Sánchez jmontes@fi.upm.es Carácter Valores numéricos que se usan para representar caracteres (letras, números, símbolos) usando la tabla Unicode 16 bit en vez de los 7 u 8 bits que ofrece ASCII Tipo char Los valores se expresan entre comillas simples: ‘a’, ‘4’, ‘#’ String Una serie de caracteres tratados como si fuesen una única en[dad Un string puede incluir letras, dígitos y caracteres especiales (+, $,...) Un string es un objeto de la clase String Su valor es inmutable Nunca va a cambiar Las constantes de string se escriben entre comillas doble “Hola Mundo” Generación Hay muchas formas Por ahora sólo veremos éstas String s = new String(“hola”); char[] arrayChars = {‘h’,’o’,’l’,’a’}; String s = new String(arrayChars); String s = “hola” + “adios”; Es un objeto ‘h’ ‘o’ ‘l’ ‘a’ ‘c’ ‘a’ ‘s’ ‘a’ String miString1 = “hola”; String miString2 = “casa”; miString1 = miString2 Métodos Tiene varios: de instancia de clase Los más u[lizados son de instancia charAt() concat() equals() length() replace() substring() toCharArray() toLowerCase() toUpperCase()

Upload: adrian-quintero

Post on 04-Sep-2015

223 views

Category:

Documents


2 download

DESCRIPTION

Referencia a la clase String del lenguaje Java

TRANSCRIPT

  • 13/02/12

    1

    La clase String Curso de Programacin en Java

    Jess Montes Snchez [email protected]

    Carcter

    ! Valores numricos que se usan para representar caracteres (letras, nmeros, smbolos) usando la tabla Unicode ! 16 bit en vez de los 7 u 8 bits que ofrece ASCII

    ! Tipo char ! Los valores se expresan entre comillas simples: a, 4, #

    String

    ! Una serie de caracteres tratados como si fuesen una nica en[dad

    ! Un string puede incluir letras, dgitos y caracteres especiales (+,$,...)

    ! Un string es un objeto de la clase String

    ! Su valor es inmutable ! Nunca va a cambiar

    ! Las constantes de string se escriben entre comillas doble ! Hola Mundo

    Generacin

    ! Hay muchas formas

    ! Por ahora slo veremos stas

    String s = new String(hola);

    char[] arrayChars = {h,o,l,a};

    String s = new String(arrayChars);

    String s = hola + adios;

    Es un objeto

    h o l a

    c a s a

    String miString1 = hola;!

    String miString2 = casa;!

    miString1 = miString2!

    Mtodos

    ! Tiene varios: ! de instancia ! de clase

    ! Los ms u[lizados son de instancia ! charAt() ! concat() ! equals() ! length() ! replace() ! substring() ! toCharArray() ! toLowerCase() ! toUpperCase()

  • 13/02/12

    2

    char charAt(int index)

    ! Devuelve el carcter indicado por el ndice

    ! Al igual que los arrays la primera posicin es la 0

    String x = avion;!

    System.out.println( x.charAt(2) );!

    String concat(String s)

    ! Devuelve un nuevo string adjuntando el valor del string pasado como parmetro al valor del string actual.

    String x = hola;!

    System.out.println( x.concat( mundo!) );!

    boolean equals(String s)

    ! Devuelve verdadero si el valor del string pasado es el mismo que el actual

    String x = hola;!

    System.out.println( x.equals(HOLA) );!

    Comparando Strings

    ! Qu pasara si uso == ? h o l a

    h o l a

    String uno = new String(hola);!String otro = new String(hola);!!System.out.println(uno==otro);?!

    false!

    Comparando Strings

    ! Y con esto?

    String uno = hola;!String otro = hola;!!System.out.println(uno==otro);?!

    true!

    Reserva de constantes de String

    ! Cada vez que se escribe una constante de String (Ej hola) Java comprueba si ya se ha escrito antes y, si ya existe, no crea un objeto nuevo ! Reaprovecha la referencia

    ! Por qu? ! Eciencia ! Reduce el consumo de memoria

    ! Slo ocurre con las constantes de Strings

  • 13/02/12

    3

    Reserva de constantes de String

    ! Por qu pasa esto?

    String uno = hola;!String otro = hola;!!

    h o l a

    int length()

    ! Devuelve el tamao del String

    ! Cuidado! en arrays era una variable y aqu es un mtodo

    String x = hola;!

    System.out.println( x.length() );!

    String replace(char old, char new)

    ! Crea un nuevo String con el valor del String actual pero cambiando todas las apariciones del carcter old por las de new

    String x = oxoxox;!

    System.out.println( x.replace(o,O) )!

    La salida es:

    OxOxOx

    String substring(int begin, int end)

    ! Devuelve un nuevo String con los caracteres del primero que van desde la posicin que comienza en begin hasta los de la posicin end

    String x =holamundo;!

    System.out.println( x.substring(0,3) );!

    // hola!

    String toLowerCase() String toUpperCase()

    ! Devuelve un nuevo String con todos los caracteres en minsculas o en maysculas

    String x = hola;!

    System.out.println( x.toUpperCase() );!

    Imprimira

    HOLA

    char[] toCharArray()

    ! Crea un array de caracteres y convierte el String a un array de chars

    String x = hola;!

    char[] arrayDeChars = x.toCharArray();!

    System.out.println( arrayDeChars[2] );!

  • 13/02/12

    4

    Encadenamiento de llamadas

    String x = "abc";

    String y = x.concat("def").toUpperCase().replace('C','x');

    System.out.println("y = " + y);

    // La salida sera y = ABxDEF

    StringBuilder

    ! Los Strings son inmutables

    ! Y si vamos a hacer muchas operaciones de modicacin? ! Vamos a estar creando y destruyendo muchos Strings

    ! Muy ineciente

    ! Los objetos StringBuilder son similares a los String ! ges[onan un conjunto de caracteres

    ! Pero permiten ser modicados sin que se cree y se destruya un objeto cada vez

    Creacin

    ! Slo esta forma

    StringBuilder sb = new StringBuilder(abc);

    StringBuilder sb = abc; // ERROR

    Mtodos importantes

    ! append

    ! charAt

    ! setCharAt

    ! delete

    ! insert

    ! reverse

    ! toString

    StringBuilder append(String s)

    ! Adjunta el String s al nal del StringBuer actual

    ! Devuelve una referencia a s mismo

    StringBuilder sb = new StringBuilder(hola);

    sb.append(mundo);

    System.out.println(sb);

    char charAt(int index)

    ! Devuelve el carcter indicado por el ndice

    ! Al igual que los arrays la primera posicin es la 0

    StringBuilder x = new StringBuilder(avion);!

    System.out.println( x.charAt(2) );!

  • 13/02/12

    5

    void setCharAt(int index,char ch)

    ! Se cambia el caracter de la posicin index al valor almacenado en ch

    ! Al igual que los arrays la primera posicin es la 0

    StringBuilder x = new StringBuilder(avion);!

    x.setCharAt(1,V);!

    System.out.println( x);!

    // aVion!

    StringBuilder delete(int start,int end)

    ! Elimina los caracteres desde la posicin start hasta la end-1

    ! Devuelve una referencia a s mismo

    StringBuilder x = new StringBuilder(0123456789);!

    System.out.println( x.delete(4,6) );!

    // Devolvera 01236789!

    StringBuilder insert(int oset, String s)

    ! Inserta el String pasado en la posicin especicada por oset

    ! Devuelve una referencia a s mismo StringBuilder sb = new StringBuilder(01234);!

    sb.insert(3,-);!

    System.out.println(sb);!

    // Devolvera 012-34!

    StringBuilder reverse()

    ! Invierte los caracteres

    ! Devuelve una referencia a s mismo

    StringBuilder sb = new StringBuilder(01234);!

    sb.reverse();!

    System.out.println( sb);!

    // Devolvera 43210

    String toString()

    ! Devuelve un String con los caracteres del StringBuer StringBuilder sb = new StringBuilder(test);!

    String s = sb.toString();!

    System.out.println( s);!