C#字符串長度


  在ArcGIS屬性表中,如果是Shape文件,其他字段名稱長度不能超過10個字符(一個漢字算兩個字條),如果是在數據庫中的文件,其他字符名稱長度就可超過10個字符。

  在我的記憶中,中文字符應該算兩個字符,實際在C#中,不管中文、英文、全角、半角,其他長度都是相同的。如:

string s1 = "四川";
string s2 = "sc";
Console.WriteLine(s1.Length);
Console.WriteLine(s2.Length);

  結果:2 ,2(第一個結果不是4)

  那么,現在要判斷字段名是否大於10,顯然,用string.Length方法不可行。可以使用的方法有:

方法一:字節計算法

  通過求字符串字節來判斷,一個漢字占兩個字節,一個字母占一個字節。

Encoding.Default.GetByteCount(s)>10

方法二:轉換替換法

  將原字符串中的中文用英文替換,再來判斷長度。這其中要使用正則表達式。

s.replace(/[^\x00-\xff]/g,"**").length

方法三:ASSIC碼法

  通過判斷ASSIC來判斷是否是漢字,如果是漢字計兩個長度,如果不是則計一個長度。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM