国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C# 字符串按 ASCII碼 排序的方法

2020-01-24 00:41:32
字體:
來源:轉載
供稿:網友

在和銀行做數據對接時,涉及到數據傳輸時的驗簽及加密。其中數據簽名方案中就要求數據項根據屬性名按 ASCII碼 進行升序排序。C#中的ASCII碼排序并不是表面上那么簡單,一不小心就入坑了。因為C#的排序默認并不是按照ASCII碼進行排序的。舉個例子, 我有這樣一個字符串數組,然后對其排序。

string[] vv = { "1", "2", "A", "a", "B", "b" };Array.Sort(vv); //結果 1 2 a A b B

如果是按照ASCII碼進行排序的話,順序應該是: 1, 2, A, B, a, b  而實際排序后的結果則是:1, 2, a, A, b, B . 這也就是說Sort()方法默認情況下并不是按ASCII碼進行排序的。之后我也同樣測試了C#中的OrderBy()的排序,發現它默認情況下也并不是按照ASCII碼進行的排序。

string[] vv = { "1", "2", "A", "a", "B", "b" };vv.OrderBy(x => x); //結果 1 2 a A b B

那么既然默認排序不是按ASCII碼進行的排序,我們要怎么做呢? 看下面代碼,只需要在原來排序方法上再加個參數: string.CompareOrdinal。string.CompareOrdinal會把每個字符先轉成相應的數值(如 a 轉為數值 97),然后再對數值進行比較。

Array.Sort(vv, string.CompareOrdinal); //ASCII排序

注:掉入這個坑是因為起初不知道如何對字符做ASCII碼排序,于是百度了一把。得到的結果就是這個C# 參數按照ASCII碼從小到大排序(字典序)  而當我采用這種方式時,銀行驗簽那步始終通不過,調試發現我排序后的結果和銀行那邊的不同。

以上所述是小編給大家介紹的C# 字符串按 ASCII碼 排序的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南昌市| 安平县| 濉溪县| 枣强县| 淳安县| 文成县| 应用必备| 塔城市| 当雄县| 赤壁市| 东乌| 陇南市| 扎赉特旗| 汉中市| 五台县| 榕江县| 济南市| 翼城县| 平武县| 彩票| 壤塘县| 金秀| 横峰县| 昌吉市| 栖霞市| 桃江县| 石景山区| 仙桃市| 宜兴市| 陵川县| 襄垣县| 嘉善县| 武强县| 盐边县| 双柏县| 科技| 黄龙县| 竹北市| 扎兰屯市| 汨罗市| 叙永县|