Está en la página 1de 7

LaclaseString

Laclase String 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