Katika somo hili utajifunza kutumia method (function) kwenye string. Tulisha jifunza kwenye aina za data kuhusu string. Hapa tutakwenda kuangalia zaidi jinsi ya kuitumia string.
Tulipokuwa tunasoma object nilikueleza kuwa object ni variable. Katika javascript karibia variable zote utakazozitengeneza zinaweza kuwa ni object. Kwa mfano var web ="bongoclass". katika mfano huu variable web hapo ni object. Hivyo variable yetu itakuwa tayari kupokea method mbalimbali zinazohusu string object.
-
Kujuwa idadi ya character
Kujuwa idadi ya maneno tutatumia lenth kama built in property ya string. kwabnfano katika variable yetu web hapo tutasema web.length kumaanisha kuwa variable web ni object name na length ni object property ambayo value yake nibidadi ya character.
Ukihesabu neno Bongoclass utapata kuwa lina idadi yabherufi 10. Hivyo hiyo 10 itakuwa ndio property value.
<script>
var web="Bongoclass";
document.write(web.length)
</script>
-
Ku retrive string
Ku retrive string ni sawa na kusema kujuwa kila character ipo nafasi gani kwenye hiyo string. Na kumbuka kuwa kuhesabu tunaanza kwenye 0. Mfano kwenye string yetu Bongoclass tunataka kuangalia je character namba 4 inawakilisha herufi gani kwenye hiyovstrong?
<script>
var web="Bongoclass";
document.write(web[4])
</script>
-
Kujuwa nafasi ya neno
Hapa tunataka kujuwa je neno hili kwa mara ya kwanza limetokea kwenye nafasi ya ngapi. Yaani unapita character ngapi kutoka mwanzo wa string mpaka kulikuta hilo neno kwa mara ya kwanza.
Chukulia mfano wa hii string "Haloo karibu Bongoclass upate kujifunza bure, karibu sana" sasa hapa tunataka kujuwa neno karibu kwa mara ya kwanza limeonekana kuanzia character ya ngapi. Kama utahesabu hapo utaona neno karibu kwa mara ya kwanza linapatikana kuanzia character ya 6. Endapo hilo neno halijatokea utapata jibu -1.
<script>
var web="Haloo karibu Bongoclass upate kujifunza bure, karibu sana";
document.write(web.indexOf("karibu"))
</script>
Sasa endapo unataka kujuwa nafasi ya hilo neno lililotokea mara ya mwisho hapa tutatumia lastIndexOf hii ni method ambayo itatupa majibu tunayoyataka. Angalia hiyo string yetu hapo juu neno karibu limejitokeza mara mbili. Sasa tunataka tujuwe hiyo ya mwisho limejitokeza katika nafasi ha ngapi.
<script>
var web="Haloo karibu Bongoclass upate kujifunza bure, karibu sana";
document.write(web.lastIndexOf("karibu"))
</script>
Utaona hapo jibu ni 46, inamaana kuwa kwa mara ya mwisho neno karibu limejitokeza kuanzia character ya 46.
Katika indexOf na lastIndexOf hizi huangalia neno kama lilivyo yaani KaRibu na karibu ni maneno mawili tofauti. Hivyo kama hayatafanana haiwezi kukupa majibu. Sasa endapo utahitaji kutafuta neno bila kujali uandishi kama limechanganja herufi lakjni linasomeka sawa hapa tunatumia method ya search()
Mfano we.search("karibu") hii ni sawa na hizo method mbili tulojifunza kwani majibu yake ni sawa. Sasa angalia string hii "Haloo KariBu Bongoclass upate kujifunza bure, karibu sana." utaona hapo neno KariBU lipo mwanzo na neno karibu lipo mwisho.
<script>
var web="Haloo KariBu Bongoclass upate kujifunza bure, karibu sana.";
document.write(web.search("karibu"))
</script>
Utaona hapo umepata jibu 47 kwa maana karibu ya kwanza imeonekana haipo sawa na neno lililopo kwenye method yetu. Ili kufanya karibu ya kwanza itambulike tutatumia alama za back lash yaani /. Mfano search(/karibu/i) kisha tutaweka i kumaanisha insensitivity higyobkuifanya isijali uandishi ila izingatie kuwa neno linasomeka sawa.
<script>
var web="Haloo KariBu Bongoclass upate kujifunza bure, karibu sana.";
document.write(web.search(/karibu/i))
</script>
Tofauti kuu iliyopo kati ya indexOf na lastIndexOf na search ni kuwa hii ya search inakubali matumizi yavregular expression. Regular expression ni javascript expression ambayo inakuwa na paten maalumu. Inaweza kuwa na special character, herufi, namba, symbol na space character.
-
Kunyofoa maneno
Hapa tutakwenda kujifunza namna ya kunyofoa maneno kwenye string ka namna tunavyotaka.
Kwa mfano una string hii hapa "Bonhoclass ni tovuti inayokua fursa ya kujifunza elimu ya TEHEMA" sasa tunataka kunyofoa herufi kuanzia character ya 13 hadi ya 20 ili tupate nono jipya ambalo litatengenezwa kupitia character hizo.
Kufanya hivyo tutatumia method inayoitwa slice(). Itakachofanya hapo ni kukusanya hizo character na kupata neno moja. Kwa mujibubwa character yetu hapo tutapata tovuti
<script>
var web="Bonhoclass ni tovuti inayokua fursa ya kujifunza elimu ya TEHEMA";
document.write(web.slice(13, 20))
</script>
Pia method ya slice inaweza kuchukuwa negative hivyo kuanza kuhesabu kutoka mwisho kujabmwanzo. Kwa mfano hapo kwenye string yetu neno tovuti tutalipata kwenye -50 hadi -44 kama ukihesabu kutoka mwisho.
<script>
var web="Bonhoclass ni tovuti inayokua fursa ya kujifunza elimu ya TEHEMA";
document.write(web.slice(-50, -44))
</script>
Pia unaweza kutumia Method ya substring() na ukapata matokeo sawa na slice() tofauti ya slice na substring ni kuwa hii substring() haichukui negative kama tulivyoona kwenye mfano hapo juu.
<script>
var web="Bonhoclass ni tovuti inayokua fursa ya kujifunza elimu ya TEHEMA";
document.write(web.substring(13, 20))
</script>
Sasa je kama ninataka kunyofoa jina lenye character 7 kutoka character ya 13. Hii inamaana kuanzia character ya 13 zitanyofolewa character 7 kutoka character ya 13 kuendelea mbele.
Kufanya hivi utatumia substr() method. Hii itahesabu character 13 za mwanzo kisha hunyifoa character 7 zinazofata .
<script>
var web="Bonhoclass ni tovuti inayokua fursa ya kujifunza elimu ya TEHEMA";
document.write(web.substr(13, 7))
</script>
Tofauti ya substr() na substring() ni kuwa substr hii huchukua idadi ya character kutoka position maalumu, lakini hii ya substring yenyewe inachukuwa character zilizopo kati ya position zilizotolewa mfano kutoka character ya 13 hadi ya 20.
-
Kubadilisha maneno yaani replace:
Chukulia mfano wa string hii "Watoto wa shule ni watoto watiifu endapo watakutana na watoto wenzao walio watiifu"
Katika string tunataka kubadili neno watoto na neno wanafunzi. Kufanya hivi tutatumia replace() mfano: -
script>
var web="Watoto wa shule ni watoto watiifu endapo watakutana na watoto wenzao walio watiifu";
document.write(web.replace("watoto","wanafunzi"))
</script>
Utaona hapo neno ambalo lililobadilishwa ni moja tu ambalo ni watoto ya pili. Hiyo ya kwanza imeanza na herufi kubwa na sisi neno letu tuloweka ni ka herufi ndogo. Pia hii ina replace neno la kwanza tu ambalo litalingana na neno tunalotaka ku replace.
Ili tuweze ku replace zote tutatumia regular expression /g, nikishakueleza nini regular expression hapo juu. Hivyo itakuwa hivi: -
<script>
var web="Watoto wa shule ni watoto watiifu endapo watakutana na watoto wenzao walio watiifu";
document.write(web.replace(/watoto/g,"wanafunzi"))
</script>
Utaona hapo ime replace watoto zote mbili lakini shida nimekuwa Watoto ya kwanza imeachwa kwa sababu imeanza na herufi kubwa. Ili kuweza ku replace zote bila kujali herufi gani tutatkiwa kuifanya iwe case insensitivity hivyo tutatumia regular expression /gi
mfano:
<script>
var web="Watoto wa shule ni watoto watiifu endapo watakutana na watoto wenzao walio watiifu";
document.write(web.replace(/watoto/gi,"wanafunzi"))
</script>
-
Kubadili maneno kuwa katika herufi kubwa ama ndogo
Angalia string hii "wanafunza wa darasa la SABA wamemaliza mtihani wa NECTA siku ya jana" sasa utaona hapo kuna maneno yapo katika herufi kubwa na yalio katika herufi ndogo.
Kwanza tunataka yote kuyaweka katika herufi ndogo. Kufanya hivi tutatumia method ya toLowerCase()
mfano
<script>
var web="Watoto wa shule ni watoto watiifu endapo watakutana na watoto wenzao walio watiifu";
document.write(web.toLowerCase())
</script>
Na kuzifanya ziwe katika herufi kubwa tutatumia toUpperCase()
<script>
var web="Watoto wa shule ni watoto watiifu endapo watakutana na watoto wenzao walio watiifu";
document.write(web.toUpperCase())
</script>
-
Kuondosha nafasi tupu kwenye string
hii inatambulika kama triming, ni pale unapokuwa na string ina nafasi za wazi nyingi na ukataka kuzitoa. Mfano angalia string hii "Bongoclass inakukaribisha kwenye mafunzo ya tehama" utaona hapo kuna nafasi za wazi nyingi tunataka kuzitoa tuwe na string kama hii Bongoclass inakukaribisha kwenye mafunzo ya tehama. Kufanya hivi tutatumia trim() mfano:
<script>
var web="Bongoclass inakukaribisha kwenye mafunzo ya tehama";
document.write(web.trim())
</script>
-
Kunga maneno
Hapa tutakwenda kuunga maneno kwenye string tulio nayo na string nyingine. Kwa mfano string yetu ina baba na mama sasa tunataka wakati wa ku output tuunganishe na maneno haya wapo shambani. Kufanya hivi tutatumia concat() method.
Method hii itakuwa kama hivi concat(" ", "wapo shambani") utaona hapo tumetumia " ", kwa ajili ya kuacha nafasi kutoka string ya kwanza. Utatakiwa utumie alama ya koma ili kuziunga. Hivyo code zote zitakuwa hivi: -
<script>
var web="baba na mama";
document.write(web.concat(" ", "wapo shamba"))
</script>
Mwisho:
Somo linalofuata tutaangalia method ambazo zinatumika kwenye namba. Pia tutaangalia baadhi ya Method zinazotumika kwenye mahesabu.