Funkcije za delo z nizi
Ta razdelek vsebuje krajše opise funkcij, ki se nanašajo na nizovne vrednosti.
Funkcija | Kaj naredi |
---|---|
convert | Niz pretvori v drug podatkovni tip ali drug podatkovni tip pretvori v niz. |
decode | Zakodiran nizovni izraz pretvori nazaj v izviren niz. |
encode | Nizovni izraz pretvori v besedilni niz brez pomena. |
hex | Nizovni literal, ki vsebuje šestnajstiške kode, prevede v niz ASCII. |
in_set | Vrne logično vrednost true, če je niz v celoti sestavljen iz znakov drugega niza. |
is_number | Vrne logično vrednost true, če je izraz niza vrednoten kot decimalna ali celoštevilska vrednost. |
is_time | Vrne logično vrednost true, če je izraz niza vrednoten kot veljavna časovna vrednost. |
len | Vrne dolžino niza. |
Vse znake v nizu spremeni v male (lower) ali velike (upper). | |
Izbriše prazne ali podane znake pred (ltrim), za (rtrim) ali pred in za nizom (trim). | |
max | Vrne največjo vrednost iz seznama izrazov kateregakoli od podprtih podatkovnih tipov. |
min | Vrne najmanjšo vrednost iz seznama izrazov kateregakoli od podprtih podatkovnih tipov. |
numbertostring | S pomočjo podane maske izraz realnega števila s plavajočo vejico ali celoštevilčni izraz pretvori v nizovni izraz. |
repeat | Izdela niz tako, da drug niz ponovi tolikokrat, kot je podano. |
strins | En niz vstavi v drug niz na podani lokaciji. |
strloc | Vrne začetni položaj podniza znotraj niza. Če podniz ni najden, funkcija vrne ničlo. |
stringtotime | S pomočjo podane maske nizovni izraz pretvori v časovni izraz. |
substitute | Znotraj niza en podniz zamenja z drugim. |
substr | Vrne podniz med podanim začetnim položajem in dolžino. |
timetostring | S pomočjo podane maske časovni izraz pretvori v nizovni izraz. |
translate | Zamenja znake v nizu. |
xmlencode | Polje XML pretvori v nizovni izraz. |
xmldecode | Nizovni izraz pretvori v XML. |
hex
Funkcija prevede nizovni literal šestnajstiške kode v niz ASCII. Funkcija hex lahko izrazi katerikoli znak, vendar jo običajno uporabljate za znake, ki nimajo enakovrednega znaka ASCII, kot je tabulator.
hex (hex_codes)
kjer je hex_codes nizovni literal, ki vsebuje šestnajstiško kodo za znak ali niz znakov.hex ("616263")
translate
Funkcija izdela nov niz tako, da znake v enem nizu zamenja z znaki, ki jih podate. Funkcija translate je uporabna za kodiranje znakov.
translate (source_string, search_string,
replace_string)
kjer je:Parameter | Opis |
---|---|
source_string | Niz, ki vsebuje znake, ki bodo zamenjani. |
search_string | Niz znakov znotraj source_string, ki bodo zamenjani. Dolg mora biti enako kot replace_string. |
replace_string | Niz znakov za zamenjavo. Dolg mora biti enako kot search_string. |
Iskanje in zamenjava se zgodi po en znak naenkrat. Če je iskani niz (search_string) "abc", zamenjalni niz (replace_string) pa je "def", funkcija v novo izdelanem nizu "a" prevede v "d", "b" v "e" in "c" v "f".
source_string vsebuje "*123-#44-!999"
search_string vsebuje "#*!-"
replace_string vsebuje "XYZ&"
je rezultat funkcije naslednji novi niz:Y123&X44&Z999
Pomnite, da se vsebina izvornega niza, iskalnega niza in zamenjalnega niza ne spremenijo.
translate (str, ".,", ",.")
lower, upper
lower (string_exp)
upper (string_exp)
kjer je string_exp nizovni izraz, ki bo pretvorjen.in_set
Ta funkcija primerja dva niza ter vrne logično vrednost true, če je vsak znak v prvem nizu tudi nekje v drugem nizu. Če prvi niz vsebuje vsaj en znak, ki ni tudi v drugem nizu, funkcija vrne vrednost false. Znaki se v obeh nizih ne rabijo pojaviti v istem vrstnem redu. Drug niz pa lahko vsebuje tudi dodatne znake.
in_set (subset_string, superset_string)
kjer je:Parameter | Opis |
---|---|
subset_string | Nizovni izraz, ki vsebuje samo znake podnabora. |
superset_string | Nizovni izraz, s katerim se primerja subset_string. |
in_set (name, "abcdefghijklmnopqrstuvwxyz")
vrne
funkcija vrednost true, če je name = "jim"
in false, če je
name = "Fido"
ali name = "a.b"
len
len (string_expr)
kjer je string_expr nizovni izraz, katerega dolžino se naj izračuna.len ("Hamilton Burger")
repeat
repeat (string_expr, repeat_num)
kjer je:Parameter | Opis |
---|---|
string_expr | Nizovni izraz, ki naj bo ponovljen. |
repeat_num | Kolikokrat naj bo string_exp ponovljen. |
repeat ("abcd", 5)
strloc
Podniz je del izvornega niza. Lahko je krajši ali enako dolg kot izvorni niz. dobro, jutr, ro jutr in dobro jutr so vse podnizi dobro jutro.
S pomočjo funkcije strloc poiščite, kje v izvornem nizu se nahaja določen podniz. Funkcija vrne položaj začetnega znaka podniza v izvornem nizu.
Če je podniz v izvornem nizu mogoče najti več kot enkrat, funkcija vrne začetno pozicijo prve pojavitve. Če podniz ni najden ali če je podniz daljši od izvornega niza, funkcija vrne ničlo.
strloc (source_string, sub_string)
kjer je:Parameter | Opis |
---|---|
source_string | Niz, v katerem se naj išče podniz. |
sub_string | Niz, ki ga iščemo. |
strloc ("Good Morning", "Morning")
substr
Funkcija podniz izvleče iz izvornega niza in tako izdela nov niz. Podate lahko izvorni niz in položaj znaka, kjer se začne ekstrahiranje. Poleg tega lahko po želji podate število znakov, ki naj bodo izvlečeni. Če pa te informacije ne podate, se ekstrahiranje konča na koncu izvornega niza.
substr (source_string, start_pos {, length})
kjer je:Parameter | Opis |
---|---|
source_string | Izvorni niz. |
start_pos | Položaj znaka, kjer se začne ekstrahiranje. |
length | Število znakov, ki naj bodo izvlečeni (na primer dolžina izvlečenega niza). |
substr
("dobro jutro!", 6, 7)
Funkcija lahko tudi ekstrahira nize z ničelno dolžino (nizi brez znakov med narekovaji) na položaju, ki je za ena daljši od dolžine niza. Ta uporaba je v pomoč pri algoritmih, ki za zaznavanje konca uporabljajo nize, ki so nične dolžine. Izvlečete lahko znake od položaja 1 do zadnjega znaka niza +1. Tako sta robna pogoja pozicija 1 in dolžina niza +1.
Do napake v času izvajanja pride v naslednjem primeru:
- Če je vaš začeten položaj manj kot 1 ali večji od dolžine niza + 1.
- Rezultat podane dolžine bi bil podniz, ki je daljši od preostalih znakov v izvornem nizu (tj. start_pos (začetna pozicija) + dolžina> len (source_string) (dolžina izvornega niza) + 1).
strins
strins (source_string, insert_string, start_pos)
kjer je:Parameter | Opis |
---|---|
source_string | Niz, ki bo z insert_string združen za izdelavo novega niza. |
insert_string | Niz, ki bo s source_string združen za izdelavo novega niza. |
start_pos | Položaj v source_string, kjer se začne vnašanje. Vrednost je lahko katerakoli med 1 in dolžino niza source_string + 1. Do napake v času izvajanja pride, če podate vrednost, manjšo od 1 ali večjo od dolžine niza source_string + 1. |
insert_str = "gospod Jones,"
in da je
source_str = "Dobro jutro,
kako lep dan."
strins (source_str, insert_str, 15)
Dobro jutro, gospod Jones, kako lep dan.
substitute
substitute (source_string, unwanted_string,
replacement_string)
kjer je:Parameter | Opis |
---|---|
source_string | Niz, ki vsebuje niz unwanted_string. |
unwanted_string | Podniz niza source_string. |
replacement_string | Niz, ki bo zamenjal niz unwanted_string pri izdelavi novega niza. |
substitute (TestString, "abc", "wxyz")
TestString = "abcdabcd"
vrne
funkcija naslednji novi niz:wxyzdwxyzd
Pomnite, da se vsebina izvornega niza, neželenega niza in zamenjalnega niza ne spremenijo.ltrim, rtrim in trim
Te funkcije izdelajo nov niz tako, da prekopira obstoječi niz in izbriše prazne ali podane znake pred (ltrim), za (rtrim) ali pred in za novim nizom (trim). V vseh primerih izvorni niz ostane nespremenjen.
ltrim (string_expr{, trim_char}neobvezen)
rtrim (string_expr{, trim_char}neobvezen)
trim (string_expr{, trim_char}neobvezen)
kjer je:Parameter | Opis |
---|---|
string_expr | Izvorni nizovni izraz, ki bo kopiran. |
trim_char | Neobvezen parameter, ki podaja znake, ki naj bodo izbrisani iz novega niza. Če tega parametra ne podate, so izbrisani presledki. Od funkcije, ki ste jo izbrali, je odvisno, ali se brisanje začne na začetku, koncu ali na obeh straneh, dokler ni mogoče najti nobenega znaka, ki je podan v trim_char (ali presledka), več. |
LastName = "Smith"
in vrnjeni novi niz je
"Smith"
ltrim (LastName)
Status = "OpenXY&Z&&&&"
je
vrnjeni niz
"OpenXY&Z"
rtrim (Status, "&")
rtrim (AccountName, "0123456789")
is_number
Funkcija določa, ali se podan nizovni izraz ovrednoti na vrednost realnega števila s plavajočo vejico ali celoštevilčno vrednost. Funkcija is_number vrne logično vrednost true, če se celoten niz (ne le podniz) ovrednoti na vrednost decimalnega števila ali celoštevilsko vrednost, v nasprotnem primeru pa false.
is_number (expr)
kjer je expr nizovni izraz.is_number ("123.4")
is_number ("no")
is_number ("abc63j")
is_time
Funkcija določa, ali se podan nizovni izraz ovrednoti na vrednost časa v podanem formatu. Funkcija is_time vrne logično vrednost true, če se celoten niz (ne le podniz) ovrednoti na čas, ki je oblikovan, kot je podano. V nasprotnem primeru vrne vrednost false.
is_time (str_expr, date_time_mask)
kjer je:Parameter | Opis |
---|---|
str_expr | Nizovni izraz. |
date_time_mask | Maska datuma/časa, ki podaja format, ki ga mora uporabljati str_expr, da bi is_time vrnila vrednost true. |
is_time ("nov121995", "mm/dd/yyyy")
is_time ("11/12/1995", "mm/dd/yyyy")
timetostring
timetostring (time_expr, date_time_mask)
kjer je:Parameter | Opis |
---|---|
time_expr | Izraz časovnega tipa. |
date_time_mask | Maska datuma/časa, ki določa format izhoda funkcije timetostring. |
timetostring (systemtime(), "mm/dd/yyyy hh:tt:ss am")
7/1/1985 12:45:06 pm
Glejte informacije o funkciji systemtime().
stringtotime
stringtotime (string_expr, date_time_mask)
kjer je:Parameter | Opis |
---|---|
string_expr | Izraz nizovnega tipa. |
date_time_mask | Maska datuma/časa, ki podaja časovni format, ki naj bo uporabljen za pretvorbo. |
stringtotime (HostTime, "mon. dd, yyyy hh:tt:ss am")
HostTime = "Jul. 1, 1985 12:45:06 pm"
je vrnjeni niz časovna vrednost, ki je enakovredna 1. juliju 1985
ob 6 sekund čez 12:45.encode, decode
Ti funkciji nize pretvorijo v nize brez pomena zato, da bi prikrili vsebino. Encode in decode morata biti v istem delovnem toku.
encode (string_expr)
decode (string_expr)
kjer je:Parameter | Opis |
---|---|
string_expr | Izraz nizovnega tipa. Niz ne more biti literal. |