SlideShare una empresa de Scribd logo
1 de 11
PRESENTACIÓN DE
PROGRAMACIÓN 2
-USO CADENAS EN JAVA (STRINGBUFFER)
NOMBRE: JASON MATUS BURGOS
DOCENTE: LESBIA VALERIO
Uso de cadenas en Java
Java posee gran capacidad para el manejo de cadenas dentro de sus clases String y
StringBuffer. Un objeto String representa una cadena alfanumérica de un valor
constante que no puede ser cambiada después de haber sido creada. Un objeto
StringBuffer representa una cadena cuyo tamaño puede variar.
La clase StringBuffer dispone de muchos métodos para modificar el contenido de
los objetos StringBuffer. Si el contenido de una cadena va a ser modificado en un
programa, habrá que sacrificar el uso de objetos String en beneficio de
StringBuffer, que aunque consumen más recursos del sistema, permiten ese tipo de
manipulaciones.
Constructores StringBuffer
StringBuffer()
-Crea un StringBuffer vacio y una capacidad inicial de 16 caracteres
StringBuffer sb= new StringBuffer();
StringBuffer(int capacity)
-Construye un StringBuffer vacio y una capacidad inicial especificada
StringBuffer(String str)
-Construye un StringBuffer y le asigna el contenido del String str
String str= “ejemplo”;
StringBuffer sb= new StringBuffer(str);
Métodos de la clase StringBuffer
La clase StringBuffer se utiliza prácticamente siempre que se desee
modificar una cadena de caracteres. Completa los métodos de la clase
String ya que éstos realizan sólo operaciones sobre el texto que no
conllevan un aumento o disminución del número de letras del String.
Recuérdese que hay muchos métodos cuyos argumentos deben ser
objetos String. que antes de pasar esos argumentos habrá que realizar
la conversión correspondiente.
Length() Devuelve el numero de caracteres en la
cadena.
Capacity() Devuelve el espacio libre del
StringBuffer
CharAt(int) Devuelve el carácter en la posición
especifica
getChars(int,int,char[],int) copia los caracteres indicados en la
posición indicada de un array de
caracteres
Insert() inserta un string o un valor
(int,float,doublé,…) en la posición
especificada de un StringBuffer
reverse() Cambia el orden de los caracteres
setCharAt(int,char) Cambia el carácter en la posición
indicada
setLength(int) Cambia el tamaño del StringBuffer
toString() Convierte en objeto de tipo String
Delete(int start,int end) Remueve los caracteres del
StringBuffer ,según los intervalos de
posición dado , comienza en start y
termina en end-1
si se ingresa mismo valor en start y
end ningún cambio será efectuado
Append(x) Añade X al final de la cadena. X
puede ser de cualquier tipo
Metodos de la clase String, StringBuffer, StringBuilder
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html
http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html
http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html
EJEMPLO
class CadAppend {
public static void main( String args[] ) {
StringBuffer str = new StringBuffer( "Hola" );
str.append( " Mundo" );
System.out.println( str );
}
}
Ejemplo
Import java.lang.StringBuffer.*;
public class Stringbuff {
public static void main(String[] args) {
String s = "1234567890";
s = separarMiles(s);
System.out.println(s);
}
public static String separarMiles(String s){
//creamos un StringBuffer a partir del String s
StringBuffer aux = new StringBuffer(s);
//le damos la vuelta
aux.reverse();
//variable que indica donde insertar el siguiente punto
int posicion = 3;
//mientras no lleguemos al final del número
while(posicion <aux.length()){
//insertamos un punto en la posición
aux.insert(posicion,'.');
//siguiente posición donde insertar
posicion+=4;
}
//le damos de nuevo la vuelta
aux.reverse();
//el StringBuffer se pasa a String y se devuelve
return aux.toString();
}
}
Diferencias entre clases de cadena en Java
La clase String es una clase no modificable. Esto quiere decir que cuando se modifica un
String se crea un nuevo objeto String modificado a partir del original y el recolector de basura
es el encargado de eliminar de la memoria el String original.
Java proporciona la clase StringBuffer y a partir de Java 5 la clase StringBuilder para trabajar
con cadenas de caracteres sobre las que vamos a realizar modificaciones frecuentes de su
contenido.
La diferencia entre StringBuffer y StringBuilder es que los métodos de StringBuffer están
sincronizados y los de StringBuilder no lo están. Por este motivo StringBuilder ofrece mejor
rendimiento que StringBuffer y la utilizaremos cuando la aplicación tenga un solo hilo de
ejecución.
En general decidiremos cuando usar String, StringBuilder o StringBuffer según lo siguiente:
- Usaremos String si la cadena de caracteres no va a cambiar.
- Usaremos StringBuilder si la cadena de caracteres puede cambiar y solamente
tenemos un hilo de ejecución.
- Usaremos StringBuffer si la cadena de caracteres puede cambiar y tenemos varios
hilos de ejecución.
Conclusión
En la amplia mayoría de los casos es recomendable utilizar la clase StringBuilder para
concatenar cadenas de caracteres. La clase StringBuilder tiene el mismo API que
StringBuffer, por lo que reemplazar código que usa StringBuffer es relativamente sencillo.
La única salvedad sería si la concatenación ocurre en un entorno multihilos, donde diferentes
hilos van modificando la misma concatenación. De todas formas, en la mayoría de los casos
la concatenación ocurre en variables locales dentro de métodos, por lo que el uso de
StringBuilder sigue siendo la opción recomendada.
Muchas gracias :D

Más contenido relacionado

Destacado

Conceptos básicos de la computadora
Conceptos básicos de la computadoraConceptos básicos de la computadora
Conceptos básicos de la computadoraCastilloUlloa
 
Cuestionario generaciones
Cuestionario generacionesCuestionario generaciones
Cuestionario generacionesGenesis Pincay
 
Diana trabajo de laboratorio
Diana trabajo de laboratorioDiana trabajo de laboratorio
Diana trabajo de laboratorioDiana Ramos
 
Metabolismo del fosforo
Metabolismo del fosforoMetabolismo del fosforo
Metabolismo del fosforoGenesis Pincay
 
Propuesta para la transformacion de energia eolica a electrica
Propuesta para la transformacion de energia eolica a electricaPropuesta para la transformacion de energia eolica a electrica
Propuesta para la transformacion de energia eolica a electricasergiodtrujilloperez
 
Abp. análisis de un proyecto
Abp. análisis de un proyectoAbp. análisis de un proyecto
Abp. análisis de un proyectomonicamoragues
 
Cuestionario de informatica 1
Cuestionario de informatica 1Cuestionario de informatica 1
Cuestionario de informatica 1Genesis Pincay
 
Software libre
Software libreSoftware libre
Software librenanda1216
 
El plagio giovanni
El plagio giovanniEl plagio giovanni
El plagio giovannigiovapetit
 
Presentacion de juddy
Presentacion de juddyPresentacion de juddy
Presentacion de juddyjuddyan
 
Modulo 1 unidad 3
Modulo 1 unidad 3Modulo 1 unidad 3
Modulo 1 unidad 3jaov246
 
Estudiar el MIR con ExamTime
Estudiar el MIR con ExamTimeEstudiar el MIR con ExamTime
Estudiar el MIR con ExamTimeGoConqr
 
Ley 28518 exposicion
Ley 28518 exposicionLey 28518 exposicion
Ley 28518 exposicionWilbert CH
 
Ecuación de primer grado con una incógnita
Ecuación de primer grado con una incógnitaEcuación de primer grado con una incógnita
Ecuación de primer grado con una incógnitaRudi Rodriguez
 

Destacado (20)

Conceptos básicos de la computadora
Conceptos básicos de la computadoraConceptos básicos de la computadora
Conceptos básicos de la computadora
 
Cuestionario generaciones
Cuestionario generacionesCuestionario generaciones
Cuestionario generaciones
 
Diana trabajo de laboratorio
Diana trabajo de laboratorioDiana trabajo de laboratorio
Diana trabajo de laboratorio
 
Metabolismo del fosforo
Metabolismo del fosforoMetabolismo del fosforo
Metabolismo del fosforo
 
Actividad bgi 1
Actividad bgi 1 Actividad bgi 1
Actividad bgi 1
 
La leucemia
La leucemiaLa leucemia
La leucemia
 
Propuesta para la transformacion de energia eolica a electrica
Propuesta para la transformacion de energia eolica a electricaPropuesta para la transformacion de energia eolica a electrica
Propuesta para la transformacion de energia eolica a electrica
 
Abp. análisis de un proyecto
Abp. análisis de un proyectoAbp. análisis de un proyecto
Abp. análisis de un proyecto
 
Cuestionario de informatica 1
Cuestionario de informatica 1Cuestionario de informatica 1
Cuestionario de informatica 1
 
Grupo 5
Grupo 5Grupo 5
Grupo 5
 
Presentación1
Presentación1Presentación1
Presentación1
 
Software libre
Software libreSoftware libre
Software libre
 
El plagio giovanni
El plagio giovanniEl plagio giovanni
El plagio giovanni
 
Presentacion de juddy
Presentacion de juddyPresentacion de juddy
Presentacion de juddy
 
Modulo 1 unidad 3
Modulo 1 unidad 3Modulo 1 unidad 3
Modulo 1 unidad 3
 
Estudiar el MIR con ExamTime
Estudiar el MIR con ExamTimeEstudiar el MIR con ExamTime
Estudiar el MIR con ExamTime
 
Programa Preliminar II Congreso Conjunto MFAPS
Programa Preliminar II Congreso Conjunto MFAPSPrograma Preliminar II Congreso Conjunto MFAPS
Programa Preliminar II Congreso Conjunto MFAPS
 
Ley 28518 exposicion
Ley 28518 exposicionLey 28518 exposicion
Ley 28518 exposicion
 
Interracion
InterracionInterracion
Interracion
 
Ecuación de primer grado con una incógnita
Ecuación de primer grado con una incógnitaEcuación de primer grado con una incógnita
Ecuación de primer grado con una incógnita
 

Similar a Uso de cadenas en java (20)

Leccion 12 Java
Leccion 12 JavaLeccion 12 Java
Leccion 12 Java
 
Longitud de cadena y funciones en java
Longitud de cadena y funciones en javaLongitud de cadena y funciones en java
Longitud de cadena y funciones en java
 
Funciones de cadenas - Javascript para principiantes (fácil, rápido y efectivo)
Funciones de cadenas - Javascript para principiantes (fácil, rápido y efectivo)Funciones de cadenas - Javascript para principiantes (fácil, rápido y efectivo)
Funciones de cadenas - Javascript para principiantes (fácil, rápido y efectivo)
 
Java & Strings
Java & StringsJava & Strings
Java & Strings
 
Implementación de Aplicaciones Basadas en Texto
Implementación de Aplicaciones Basadas en TextoImplementación de Aplicaciones Basadas en Texto
Implementación de Aplicaciones Basadas en Texto
 
Apoo v
Apoo vApoo v
Apoo v
 
Uso de apis en java
Uso de apis en javaUso de apis en java
Uso de apis en java
 
Uso de apis en java
Uso de apis en javaUso de apis en java
Uso de apis en java
 
Leccion3
Leccion3Leccion3
Leccion3
 
Nuevos metodos en java8
Nuevos metodos en java8Nuevos metodos en java8
Nuevos metodos en java8
 
Semana03 prog ii
Semana03 prog iiSemana03 prog ii
Semana03 prog ii
 
1 1 3 Api De Java
1 1 3 Api De Java1 1 3 Api De Java
1 1 3 Api De Java
 
Strings
StringsStrings
Strings
 
Js control de flujo
Js control de flujoJs control de flujo
Js control de flujo
 
Introduccion java
Introduccion javaIntroduccion java
Introduccion java
 
Presentacion metodos de lectura
Presentacion metodos de lecturaPresentacion metodos de lectura
Presentacion metodos de lectura
 
Carro De Compras
Carro De ComprasCarro De Compras
Carro De Compras
 
Zope Page Templates
Zope Page TemplatesZope Page Templates
Zope Page Templates
 
Java y xml
Java y xmlJava y xml
Java y xml
 
Tipos de datos en java.pptx
Tipos de datos en java.pptxTipos de datos en java.pptx
Tipos de datos en java.pptx
 

Último

Ingeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaIngeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaANACENIMENDEZ1
 
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptx
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptxCONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptx
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptxBrayanJavierCalle2
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASPersonalJesusGranPod
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptxBRAYANJOSEPTSANJINEZ
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Dr. Edwin Hernandez
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024CESARHERNANPATRICIOP2
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOLUISDAVIDVIZARRETARA
 
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOL
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOLTERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOL
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOLdanilojaviersantiago
 
osciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfosciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfIvanRetambay
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 

Último (20)

Ingeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaIngeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedica
 
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptx
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptxCONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptx
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptx
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
 
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOL
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOLTERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOL
TERMODINAMICA YUNUS SEPTIMA EDICION, ESPAÑOL
 
osciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfosciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdf
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 

Uso de cadenas en java

  • 1. PRESENTACIÓN DE PROGRAMACIÓN 2 -USO CADENAS EN JAVA (STRINGBUFFER) NOMBRE: JASON MATUS BURGOS DOCENTE: LESBIA VALERIO
  • 2. Uso de cadenas en Java Java posee gran capacidad para el manejo de cadenas dentro de sus clases String y StringBuffer. Un objeto String representa una cadena alfanumérica de un valor constante que no puede ser cambiada después de haber sido creada. Un objeto StringBuffer representa una cadena cuyo tamaño puede variar. La clase StringBuffer dispone de muchos métodos para modificar el contenido de los objetos StringBuffer. Si el contenido de una cadena va a ser modificado en un programa, habrá que sacrificar el uso de objetos String en beneficio de StringBuffer, que aunque consumen más recursos del sistema, permiten ese tipo de manipulaciones.
  • 3. Constructores StringBuffer StringBuffer() -Crea un StringBuffer vacio y una capacidad inicial de 16 caracteres StringBuffer sb= new StringBuffer(); StringBuffer(int capacity) -Construye un StringBuffer vacio y una capacidad inicial especificada StringBuffer(String str) -Construye un StringBuffer y le asigna el contenido del String str String str= “ejemplo”; StringBuffer sb= new StringBuffer(str);
  • 4. Métodos de la clase StringBuffer La clase StringBuffer se utiliza prácticamente siempre que se desee modificar una cadena de caracteres. Completa los métodos de la clase String ya que éstos realizan sólo operaciones sobre el texto que no conllevan un aumento o disminución del número de letras del String. Recuérdese que hay muchos métodos cuyos argumentos deben ser objetos String. que antes de pasar esos argumentos habrá que realizar la conversión correspondiente.
  • 5. Length() Devuelve el numero de caracteres en la cadena. Capacity() Devuelve el espacio libre del StringBuffer CharAt(int) Devuelve el carácter en la posición especifica getChars(int,int,char[],int) copia los caracteres indicados en la posición indicada de un array de caracteres Insert() inserta un string o un valor (int,float,doublé,…) en la posición especificada de un StringBuffer reverse() Cambia el orden de los caracteres setCharAt(int,char) Cambia el carácter en la posición indicada setLength(int) Cambia el tamaño del StringBuffer
  • 6. toString() Convierte en objeto de tipo String Delete(int start,int end) Remueve los caracteres del StringBuffer ,según los intervalos de posición dado , comienza en start y termina en end-1 si se ingresa mismo valor en start y end ningún cambio será efectuado Append(x) Añade X al final de la cadena. X puede ser de cualquier tipo Metodos de la clase String, StringBuffer, StringBuilder http://docs.oracle.com/javase/7/docs/api/java/lang/String.html http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html
  • 7. EJEMPLO class CadAppend { public static void main( String args[] ) { StringBuffer str = new StringBuffer( "Hola" ); str.append( " Mundo" ); System.out.println( str ); } }
  • 8. Ejemplo Import java.lang.StringBuffer.*; public class Stringbuff { public static void main(String[] args) { String s = "1234567890"; s = separarMiles(s); System.out.println(s); } public static String separarMiles(String s){ //creamos un StringBuffer a partir del String s StringBuffer aux = new StringBuffer(s); //le damos la vuelta aux.reverse(); //variable que indica donde insertar el siguiente punto int posicion = 3; //mientras no lleguemos al final del número while(posicion <aux.length()){ //insertamos un punto en la posición aux.insert(posicion,'.'); //siguiente posición donde insertar posicion+=4; } //le damos de nuevo la vuelta aux.reverse(); //el StringBuffer se pasa a String y se devuelve return aux.toString(); } }
  • 9. Diferencias entre clases de cadena en Java La clase String es una clase no modificable. Esto quiere decir que cuando se modifica un String se crea un nuevo objeto String modificado a partir del original y el recolector de basura es el encargado de eliminar de la memoria el String original. Java proporciona la clase StringBuffer y a partir de Java 5 la clase StringBuilder para trabajar con cadenas de caracteres sobre las que vamos a realizar modificaciones frecuentes de su contenido. La diferencia entre StringBuffer y StringBuilder es que los métodos de StringBuffer están sincronizados y los de StringBuilder no lo están. Por este motivo StringBuilder ofrece mejor rendimiento que StringBuffer y la utilizaremos cuando la aplicación tenga un solo hilo de ejecución. En general decidiremos cuando usar String, StringBuilder o StringBuffer según lo siguiente: - Usaremos String si la cadena de caracteres no va a cambiar. - Usaremos StringBuilder si la cadena de caracteres puede cambiar y solamente tenemos un hilo de ejecución. - Usaremos StringBuffer si la cadena de caracteres puede cambiar y tenemos varios hilos de ejecución.
  • 10. Conclusión En la amplia mayoría de los casos es recomendable utilizar la clase StringBuilder para concatenar cadenas de caracteres. La clase StringBuilder tiene el mismo API que StringBuffer, por lo que reemplazar código que usa StringBuffer es relativamente sencillo. La única salvedad sería si la concatenación ocurre en un entorno multihilos, donde diferentes hilos van modificando la misma concatenación. De todas formas, en la mayoría de los casos la concatenación ocurre en variables locales dentro de métodos, por lo que el uso de StringBuilder sigue siendo la opción recomendada.