C 字串替換 無視大小寫

2021-08-27 01:46:51 字數 1250 閱讀 9026

源**翻譯工具基本完成了,只剩下最後問題:就是對字串進行替換時,怎麼無視原文的大小寫。因為c#裡的string.replace是不能無視大小寫的。首先想到的是正規表示式,在網上查了下,果然有用正規表示式配合一些邏輯運算,實現無視大小寫的字串替換方法。但是正規表示式的方法用起來很麻煩,實驗證明速度也不是最快。而我要說的是用起來最方便,執行速度也是最快的一種。就是使用microsoft.visualbasic命名空間裡的strings。

首先新增引用microsoft.visualbasic.dll

引入命名空間using microsoft.visualbasic;

使用replace方法,以下為引數:

strings.replace(原字串的內容,要替換的字段內容,替換後的字段內容,從第幾位開始替換(注意預設為1),替換的次數(-1表示所有),是否無視大小寫);

例: string str="aabbcc_aabbcc";

//將原字串中的第乙個bb替換為dd

str=strings.replace(str,"bb","dd",1,1,comparemetho d.binary);

列印結果:aaddcc_aabbcc

(comparemethod.binary的意思是用二進位制去找,由於大小寫字母的二進位制**顯然是不同的,所以是不無視大小寫的)

//將原字串中的所有bb替換為dd

str=strings.replace(str,"bb","dd",1,-1,comparemeth od.binary);

列印結果:aaddcc_aaddcc

//將原字串中的所有bb替換為dd,以無視大小寫的情況

str=strings.replace(str,"bb","dd",1,-1,comparemeth od.text);

列印結果:aaddcc_aaddcc

(comparemethod.text的意思是用文字去找,所以是無視大小寫的)

這種方法只需要把幾個重要的引數傳進去就可以了,使用非常方便。由於它的原理是先split(),再join(),所以速度非常快。比正規表示式的方法快了許多。

需要注意的是,replace不能替換空字串。例如

string str="";

這時如果你用strings.replace去替換的話,將返回null

str=strings.replace(str, "", "test", 1, -1, comparemethod.binary);

str==null為真

c 字串大小寫轉換

c 字串大小寫轉換 將字串轉換為大寫string類有乙個名為toupper的靜態方法。您可使用此方法將字串轉換為大寫。例如 string lower converted from lowercase console.writeline lower.toupper 將字串轉換為小寫tolower方法與...

c 字串大小寫轉換

將字串轉換為大寫string類有乙個名為toupper的靜態方法。您可使用此方法將字串轉換為大寫。例如 string lower converted from lowercase console.writeline lower.toupper 將字串轉換為小寫tolower方法與toupper方法相...

C 字串的大小寫

char define tolower char char a a define toupper char char a a char ms errno t strlwr s char str,size t numberofelements errno t strupr s char str,siz...