Está en la página 1de 7

LaclaseString

LaclaseString

Cmoseobtieneinformacinacercadelstring
Comparacindestrings
Extraerunsubstringdeunstring
Convertirunnmeroastring
Convertirunstringennmero
MtodosPrincipales

Hemosaprendidoadiferenciarentreclaseyobjetos,aaccederdesdeunobjetoalosmiembrosdatosy
alasfuncionesmiembro.VamosautilizarclasesimportantesenellenguajeJavayacrearobjetosde
dichasclases.EmpezaremosporlaclaseStringunadelasmsimportantesdellenguajeJava.Ms
adelante,volveremosaestudiarotrosejemplosparaqueellectorseacostumbreacrearsuspropias
clases.

LaclaseString
DentrodeunobjetodelaclasesStringoStringBuffer,Javacreaunarraydecaracteresdeunaforma
similaracomolohaceellenguajeC++.Aestearrayseaccedeatravsdelasfuncionesmiembrodela
clase.
LosstringsuobjetosdelaclaseStringsepuedencrearexplcitamenteoimplcitamente.Paracrearun
stringimplcitamentebastaponerunacadenadecaracteresentrecomillasdobles.Porejemplo,cuando
seescribe
System.out.println("El primer programa");

JavacreaunobjetodelaclaseStringautomticamente.
Paracrearunstringexplcitamenteescribimos
String str=new String("El primer programa");

Tambinsepuedeescribir,alternativamente
String str="El primer programa";

Paracrearunstringnulosepuedehacerdeestasdosformas
String str="";
String str=new String();

Unstringnuloesaqulquenocontienecaracteres,peroesunobjetodelaclaseString.Sinembargo,
String str;

estdeclarandounobjetostrdelaclaseString,peroannosehacreadoningnobjetodeestaclase.

Cmoseobtieneinformacinacercadelstring
UnavezcreadounobjetodelaclaseStringpodemosobtenerinformacinrelevanteacercadelobjetoa
travsdelasfuncionesmiembro.
Paraobtenerlalongitud,nmerodecaracteresqueguardaunstringsellamaalafuncinmiembro
length.
String str="El primer programa";
int longitud=str.length();

Podemosconocersiunstringcomienzaconundeterminadoprefijo,llamandoalmtodostartsWith,
quedevuelvetrueofalse,segnqueelstringcomienceonopordichoprefijo
String str="El primer programa";
boolean resultado=str.startsWith("El");

Enesteejemplolavariableresultadotomarelvalortrue.
Demodosimilar,podemossabersiunstringfinalizaconunconjuntodadodecaracteres,mediantela
funcinmiembroendsWith.
String str="El primer programa";
boolean resultado=str.endsWith("programa");

Sisequiereobtenerlaposicindelaprimeraocurrenciadelaletrap,seusalafuncinindexOf.
String str="El primer programa";
int pos=str.indexOf('p');

Paraobtenerlassucesivasposicionesdelaletrap,sellamaaotraversindelamismafuncin
pos=str.indexOf('p', pos+1);

ElsegundoargumentoledicealafuncinindexOfqueempieceabuscarlaprimeraocurrenciadela
letrapapartirdelaposicinpos+1.
OtraversindeindexOfbuscalaprimeraocurrenciadeunsubstringdentrodelstring.
String str="El primer programa";
int pos=str.indexOf("pro");

Vemosqueunaclasepuededefinirvariasfuncionesmiembroconelmismonombreperoquetienen
distintonmerodeparmetrosodedistintotipo.

Comparacindestrings
Lacomparacindestringsnosdalaoportunidaddedistinguirentreeloperadorlgico==ylafuncin
miembroequalsdelaclaseString.Enelsiguientecdigo
String str1="El lenguaje Java";
String str2=new String("El lenguaje Java");
if(str1==str2){
System.out.println("Los mismos objetos");
}else{
System.out.println("Distintos objetos");
}
if(str1.equals(str2)){
System.out.println("El mismo contenido");
}else{
System.out.println("Distinto contenido");
}

Estaporcindecdigodevolverquestr1ystr2sondistintosobjetosperoconelmismocontenido.
str1ystr2ocupanposicionesdistintasenmemoriaperoguardanlosmismosdatos.
Cambiemoslasegundasentenciayescribamos
String str1="El lenguaje Java";
String str2=str1;
System.out.prinln("Son el mimso objeto "+(str1==str2);

Losobjetosstr1ystr2guardanlamismareferenciaalobjetodelaclaseStringcreado.Laexpresin
(str1==str2)devolvertrue.
Asipues,elmtodoequalscomparaunstringconunobjetocualquieraquepuedeserotrostring,y
devuelvetruecuandodosstringssonigualesofalsesisondistintos.
String str="El lenguaje Java";
boolean resultado=str.equals("El lenguaje Java");

Lavariableresultadotomarelvalortrue.
LafuncinmiembrocomapareTodevuelveunenteromenorquecerosielobjetostringesmenor(en
ordenalfabtico)queelstringdado,cerosisoniguales,ymayorquecerosielobjetostringesmayor
queelstringdado.
String str="Toms";
int resultado=str.compareTo("Alberto");

Lavariableenteraresultadotomarunvalormayorquecero,yaqueTomsestdespusdeAlbertoen
ordenalfabtico.
String str="Alberto";
int resultado=str.compareTo("Toms");

Lavariableenteraresultadotomarunvalormenorquecero,yaqueAlbertoestantesqueTomsen
ordenalfabtico.

Extraerunsubstringdeunstring
Enmuchasocasionesesnecesarioextraerunaporcinosubstringdeunstringdado.Paraeste
propsitohayunafuncinmiembrodelaclaseStringdenominadasubstring.
Paraestraerunsubstringdesdeunaposicindeterminadahastaelfinaldelstringescribimos
String str="El lenguaje Java";
String subStr=str.substring(12);

Seobtendrelsubstring"Java".
Unasegundaversindelafuncinmiembrosubstring,nospermiteextraerunsubstringespecificando
laposicindecomienzoylaelfinal.
String str="El lenguaje Java";
String subStr=str.substring(3, 11);

Seobtendrelsubstring"lenguaje".Recurdese,quelasposicionesseempiezanacontardesdecero.

Convertirunnmeroastring
ParaconvertirunnmeroenstringseemplealafuncinmiembroestticavalueOf(msadelante
explicaremosestetipodefunciones).
int valor=10;
String str=String.valueOf(valor);

LaclaseStringproporcionaversionesdevalueOfparaconvertirlosdatosprimitivos:int,long,float,
double.
Estafuncinseempleamuchocuandoprogramamosapplets,porejemplo,cuandoqueremosmostrarel
resultadodeunclculoenelreadetrabajodelaventanaoenuncontroldeedicin.

Convertirunstringennmero
Cuandointroducimoscaracteresenuncontroldeedicinavecesesinevitablequeaparezcanespacios
yaseaalcomienzooalfinal.Paraeliminarestosespaciostenemoslafuncinmiembrotrim
String str=" 12 ";
String str1=str.trim();

Paraconvertirunstringennmeroentero,primeroquitamoslosespaciosenblancoalprincipioyal
finalyluego,llamamosalafuncinmiembroestticaparseIntdelaclaseInteger(claseenvolventeque
describelosnmerosenteros)

String str=" 12 ";


int numero=Integer.parseInt(str.trim());

Paraconvertirunstringennmerodecimal(double)serequierendospasos:convertirelstringenun
objetodelaclaseenvolventeDouble,mediantelafuncinmiembroestticavalueOf,yacontinuacin
convertirelobjetodelaclaseDoubleenuntipoprimitivodoublemediantelafuncindoubleValue
String str="12.35 ";
double numero=Double.valueOf(str).doubleValue();

Sepuedehacerelmismoprocedimientoparaconvertirunstringanmeroentero
String str="12";
int numero=Integer.valueOf(str).intValue();

MtodosPrincipales
ParapoderaplicarestosmtodosesnecesariocrearunobjetoString.Ademsdeestosmtodos,laclase
Stringcuentaconotrosmuchos.ConsultarlaAPIparamsinformacin.

intlength():devuelvelalongituddelaString,incluyendoespaciosenblanco.Lalongitud
siempreesunaunidadmayorqueelndiceasociadoalltimocarcterdelaString.
Ejemplo:

Porconsola:
4

intindexOf(Stringstr,intindice):devuelveelndiceenelqueapareceporprimeravezla
Stringdelprimerargumentoenlaqueseaplicaelmtodo,apartirdelndiceespecificadoenel
segundoargumento.RecordarqueunaStringestindexada.Sielndiceapartirdelqueseinicia
labsquedanoexisteolaStringnoaparece,devuelve1.MUYUSADO.
Ejemplo:

Porconsola:
1porquelabsquedaseiniciaapartirdeunndicequenoexisteyaqueel
ndicemayoreslalongituddelaString1.

intindexOf(charch):devuelveelndiceenelqueapareceporprimeravezelcarcterquesele
pasaalargumento.Sinoseencuentraelcarcterdevuelve1.Seobservaqueelnombredeeste

mtodoesigualalanterioraunquesunmerodeargumentosesdistintoademsdesutipo.A
esto,enJava,selellamasobrecargademtodos:mismonombreperodistintonde
argumentosodistintotipodeargumentosodistintoorden.IralaAPIparacomprobarque
haymsconestemismonombre.Esteconceptosetratarmsenprofundidadentemas
posteriores.

Stringreplace(charviejoChar,charnuevoChar):cambiaelcarcterasociadoalprimer
argumentoporelqueselepasaalsegundo,delaStringsobrelaqueseaplicaelmtodo
generandounanueva.LaStringsobrelaqueseaplicaelmtodonocambia,simplementese
creaotranuevaenbasealaStringsobrelaqueseaplicaelmtodo.
Ejemplo:

Porconsola:
cucu
coco

StringtoLowerCase():devuelveunanuevaStringconvirtiendotodosloscaracteresdela
Stringsobrelaqueseaplicaelmtodo,enminsculas.

StringtoUpperCase():devuelveunanuevaStringconvirtiendotodosloscaracteresdelaString
sobrelaqueseaplicaelmtodo,enmaysculas.

booleanequals(Stringstr):investigasidosStringtienenlosmismoscaracteresyenelmismo
orden.Siesasdevuelvetrueysinofalse.MUYUSADO

booleanequalsIgnoreCase(Stringstr):investigasidosStringtienenlosmismoscaracteresy
enelmismoordensintenerencuentalasmaysculas.Siesasdevuelvetrueysino
false.MUYUSADO

booleanstartsWith(Stringstr):devuelvetruesilaStringsobrelaqueseaplicacomienzapor
ladelargumento;falsesiestonoocurre.

booleanstartsWith(Stringstr,intindice):devuelvetruesilaStringsobrelaqueseaplica
comienzaporladelargumentoapartirdeundeterminadondiceasociadoalsegundo
argumento;falsesiestonoocurre.

booleanendsWith(Stringstr):devuelvetruesilaStringsobrelaqueseaplicaacabaenladel
argumento;falsesiestonoocurre.

Stringtrim():devuelveunaStringenbasealaqueselepasaalargumento,perosinespacios
enblancoalprincipionialfinal.Noeliminalosespaciosenblancosituadosentrelaspalabras.
Ejemplo:

Porconsola:
14
12

Stringsubstring(intindiceIni,intindiceFin):devuelveunaStringobtenidaapartirdelndice
inicialincluidoydelndicefinalexcluido;esdecir,secomportacomounintervalosemiabierto
[indiceIni, indiceFin). Si el ndice final sobrepasa la longitud de la String, lanza una
IndexOutOfBoundsException.MUYUSADO.
Ejemplo:

Porconsola:
rrucu

charcharAt(intindice):devuelveelcarcterasociadoalndicequeselepasacomo
argumentodelaStringsobrelaqueseaplicaelmtodo.Sielndicenoexisteselanzauna
StringIndexOutOfBoundsExceptionqueheredadeIndexOutOfBoundsException.MUY
USADO.

También podría gustarte