在包含中文的字串處理時,除了裁切固定長度的操作之外,有時也需要獲取乙個字串的實際字元數,比如我們限制輸入框字元數的時候。而c#提供的string.length屬性卻無法滿足我們的要求,由此,便有了下面這個方法:
/// ///獲取字串長度。與string.length不同的是,該方法將中文作 2 個字元計算。
///
///
目標字串
///
public static int getlength(string str)
int l = str.length;
int reallen = l;
#region 計算長度
int clen = 0;//當前長度
while (clen < l)
clen++;
}#endregion
return reallen;
}
在寫上面那個方法時,我突然想到,如果把字串轉換成byte是不是也能獲取到這個長度呢?姑且試試:
public static int getlength_obsoleted(string str)byte data = encoding.default.getbytes(str);
return data.length;
}
這個方法也能夠讓我們如願取到字串長度。但這兩個方法孰優孰劣呢?我使用了一句110字元長度的中文進行500萬次呼叫測試,getlength 的執行效率幾乎是 getlength_obsoleted 的 4 倍!
C 中如何獲取乙個字串的實際字元數
在包含中文的字串處理時,除了裁切固定長度的操作之外,有時也需要獲取乙個字串的實際字元數,比如我們限制輸入框字元數的時候。而c 提供的string.length屬性卻無法滿足我們的要求,由此,便有了下面這個方法 獲取字串長度。與string.length不同的是,該方法將中文作 2 個字元計算。目標字...
js如何獲取乙個字串在另外乙個字串中的下標
有字串 a 34 b 123456789 要求定義乙個函式返回b字串中第乙個匹配a字串的下標,不得使用現有的方法 indexof 兩種解決辦法 substr 方法可在字串中抽取從 start 下標開始的指定數目的字元。const b,a return 1 let a 34 let b 1234567...
在乙個字串中尋找另外乙個字串
在乙個字串中尋找另外乙個字串 public class text foundit true break test system.out.println foundit?found it didn t find it 該段程式有點難以理解,主要就是if語句的理解,if searchme.charat ...