translate和replace 的區別

2022-04-30 15:33:13 字數 1463 閱讀 5245

1.translate

語法:translate(char, from, to)

用法:返回將出現在from中的每個字元替換為to中的相應字元以後的字串。

若from比to字串長,那麼在from中比to中多出的字元將會被刪除。

三個引數中有乙個是空,返回值也將是空值。

舉例:sql> select translate('abcdefga','abc','wo') 返回值 from dual;

返回值-------

wodefgw

分析:該語句要將'abcdefga'中的'abc'轉換為'wo',

由於'abc'中'a'對應'wo'中的'w',

故將'abcdefga'中的'a'全部轉換成'w';

而'abc'中'b'對應'wo'中的'o',

故將'abcdefga'中的'b'全部轉換成'o';

'abc'中的'c'在'wo'中沒有與之對應的字元,

故將'abcdefga'中的'c'全部刪除;

簡單說來,就是將from中的字元轉換為to中與之位置對應的字元,

若to中找不到與之對應的字元,返回值中的該字元將會被刪除。

在實際的業務中,可以用來刪除一些異常資料,

比如表a中的乙個欄位t_no表示**號碼,

而**號碼本身應該是乙個由數字組成的字串,

為了刪除那些含有非數字的異常資料,

就用到了translate函式:

sql> delete from a,

where length(translate(trim(a.t_no), 

'0123456789' || a.t_no,

'0123456789')) <> length(trim(a.t_no));

2.replace 

語法:replace(char, search_string,replacement_string)

用法:將char中的字串search_string全部轉換為字串replacement_string。

舉例:sql> select replace('fgsgswsgs', 'fk' ,'j') 返回值 from dual;

返回值---------

fgsgswsgs

sql> select replace('fgsgswsgs', 'sg' ,'eeerrrttt') 返回值 from dual;

返回值-----------------------

fgeeerrrtttsweeerrrttts

分析:第乙個例子中由於'fgsgswsgs'中沒有與'fk'匹配的字串,

故返回值仍然是'fgsgswsgs';

第二個例子中將'fgsgswsgs'中的字串'sg'全部轉換為'eeerrrttt'。

總結:綜上所述,replace與translate都是替代函式,

只不過replace針對的是字串,而translate針對的是單個字元。

replace 和TRANSLATE 函式的對比

translate string,from str,to str 返回將 所有出現的 from str中的每個字元替換為to str中的相應字元以後的string。translate 是 replace 所提供的功能的乙個超集。如果 from str 比 to str 長,那麼在 from str ...

translate和position的比較

有很多css屬性可以影響元素定位,比如float,margin,padding,position,translate 表面上來看,position relatative和transform translate 似乎作用一致,但其實他們之間也有幾個差別,本篇文章就將比較這兩個屬性。1.瀏覽器支援情況 ...

java string 字串替換 replace

i replace方法 該方法的作用是替換字串中所有指定的字元,然後生成乙個新的字串。經過該方法呼叫以後,原來的字串不發生改變。例如 string s abcat string s1 s.replace a 1 該 的作用是將字串s中所有的字元a替換成字元1,生成的新字串s1的值是 1bc1t 而字...