oracle字元竄操作

2021-07-22 01:41:26 字數 1044 閱讀 5285

(1)oracle中實現擷取字串:substr

substr(string, start_position, [length])

其中,string是元字串,start_position為開始位置,length是可選項,表示子字串的位數。

例子:substr('abcdefg', 0);    -- 返回結果是:abcdefg,從0位開始擷取後面所有

substr('abcdefg', 2);    -- 返回結果是:cdefg,從2位開始擷取後面所有

substr('abcdefg', 0, 3);  -- 返回結果是:abc,從0位開始往後擷取3個字元長度

substr('abcdefg', 0, 100);  -- 返回結果是:abcdefg,雖然100超出了元字串長度,但是系統會按元字串最大數量返回,不會影響返回結果

substr('abcdefg', -3);  -- 返回結果是:efg,如果是負數,則從尾部往前數,擷取-3位置往後的所有字串

(2)查詢字串位置:instr

例子:instr('abcdabcdaef', 'ab');   -- 返回結果是:1,因為instr字串索引從1開始,所以是1不是0

instr('abcdabcdaef', 'da', 1, 2);   -- 返回結果是:8,返回第二次出現'da'的位置

instr('a bcdabcdaef', 'da', 1, 2);  -- 返回結果是:9,由於我在元字串中加了乙個空格,空格仍然算乙個字元

(3)替換字串:replace

replace(str1, str2, str3)

其表示的意思是:在str1中查詢str2,凡是出現str2的地方,都替換成str3。

replace('abcdefg', 'cde', 'cde');  -- 返回結果是:abcdefg

replace('abcdefg', 'cde', '');   -- 返回結果是:abfg,cde被替換成空字元

replace('abcdefg', 'cde');   -- 返回結果是:abfg,當不存在第三個引數時,cde直接被刪掉

字元竄構建

string 物件是不可改變的。每次使用 system.string 類中的方法之一時,都要在記憶體中建立乙個新的字串物件,這就需要為該新物件分配新的空間。在需要對字串執行重複修改的情況下,與建立新的 string 物件相關的系統開銷可能會非常昂貴。如果要修改字串而不建立新的物件,則可以使用 sys...

百勵 付值字元竄

別急,你只是沒弄怎麼弄明白初始化而已。我這裡隨便說下我的觀點,前面的各位兄弟都說得很對的。下面的語句沒有問題,char string 13 how are you 但是char string 13 string how are you 這樣就錯了,這是賦值語句,而且陣列只能給具體元素賦值的,這裡賦值...

由翻轉字元竄再次理解遞迴

要求 輸入乙個字串,字串反序輸出。比如 hello olleh 首先就看 是什麼 include include using namespace std string str void reverse int n 遞迴翻轉字串 int main 通過這種較為偏向硬體的說法,來解答演算法設計中遞迴的呼...