去除給定字串中重複的字串

2021-04-30 07:53:26 字數 1549 閱讀 3495

create or replace function myreplace(oldstr varchar2, sign varchar2) return varchar2 is

str varchar2(4000);

currentindex number;

startindex number;

endindex number;

/*這個函式的功能主要是用於去除給定字串中重複的字串.在使用中需要指定字串的分隔符.

示例: str := myreplace('13,14,13,444', ',');

輸出: 13,14,444

撰寫人: 吳文吉

撰寫日期: 2009-06-03 15:53

*/type str_type is table of varchar2(500)

index by binary_integer;

arr str_type;

result varchar2(4000);

begin

if oldstr is null then

return ('');

end if;

str := oldstr;

currentindex := 0;

startindex := 0;

loop

currentindex := currentindex + 1;

endindex := instr(str, sign, 1, currentindex);

if (endindex <= 0) then

exit;

end if;

arr(currentindex) := trim(substr(str, startindex + 1, endindex - startindex - 1));

startindex := endindex;

end loop;

--取最後乙個字串

arr(currentindex) := substr(str, startindex + 1, length(str));

--去掉重複出現的字串

for i in 1.. currentindex - 1 loop

for j in i + 1..currentindex loop

if arr(i) = arr(j) then

arr(j) := '';

end if;

end loop;

end loop;

str := '';

for i in 1..currentindex loop

if arr(i) is not null then

str := str || sign || arr(i);

--陣列置空

arr(i) := '';

end if;

end loop;

--去掉前面的識別符號

result := substr(str, 2, length(str));

return(result);

end myreplace;

去除字串中重複字元

設計演算法並寫出 移除字串中重複的字元,不能使用額外的快取空間。注意 可以使用額外的乙個或兩個變數,但不允許額外再開乙個陣列拷貝。進一步地,為你的程式寫測試用例。這道題目其實是要你就地 in place 將字串中重複字元移除。你可以向面試官問清楚,不能使用額外的乙份陣列拷貝是指根本就不允許開乙個陣列...

去除重複字串

建立新集合將重複元素去掉 1,明確返回值型別,返回arraylist 2,明確引數列表arraylist 分析 1,建立新集合 2,根據傳入的集合 老集合 獲取迭代器 3,遍歷老集合 4,通過新集合判斷是否包含老集合中的元素,如果包含就不新增,如果不包含就新增 public static array...

flash與字串 去除重複字串

剛剛看到網上一些字串操作,有時候需要用到的一些字串操作,記錄一下以便日後需要。var str string aabbccddeeffaa 刪除重複字串 function delrepeatstring str string string return result var starttime uin...