zoukankan      html  css  js  c++  java
  • 首字母排序算法

    1.自己就不主动思考了,纵览网页大都使用一个算法,如下。

    2.但有弊端,比如“重”字会误判为Z。再精于琢磨,使用专业软件中的dll等,这个我没下功夫。在这种情况下,我先单独处理。。。

    public static string GetFirstPY(string str)
            {
                string ret = string.Empty;
                foreach (char c in str)
                {
                    ret += GetPYChar(c);
                }
                return ret;
    
            }
    
            private static string GetPYChar(char c)
            {
                if (c.Equals('重')) return "C";
                string str = c.ToString();
                if ((int)c >= 32 && (int)c <= 126)
                {
                    return str;
                }
                byte[] array = new byte[2];
    
                array = System.Text.Encoding.Default.GetBytes(str);
    
                int i = (short)(array[0] - '') * 256 + ((short)(array[1] - ''));
    
                if (i < 0xB0A1) return "*";
    
                if (i < 0xB0C5) return "A";
    
                if (i < 0xB2C1) return "B";
    
                if (i < 0xB4EE) return "C";
    
                if (i < 0xB6EA) return "D";
    
                if (i < 0xB7A2) return "E";
    
                if (i < 0xB8C1) return "F";
    
                if (i < 0xB9FE) return "G";
    
                if (i < 0xBBF7) return "H";
    
                if (i < 0xBFA6) return "J";
    
                if (i < 0xC0AC) return "K";
    
                if (i < 0xC2E8) return "L";
    
                if (i < 0xC4C3) return "M";
    
                if (i < 0xC5B6) return "N";
    
                if (i < 0xC5BE) return "O";
    
                if (i < 0xC6DA) return "P";
    
                if (i < 0xC8BB) return "Q";
    
                if (i < 0xC8F6) return "R";
    
                if (i < 0xCBFA) return "S";
    
                if (i < 0xCDDA) return "T";
    
                if (i < 0xCEF4) return "W";
    
                if (i < 0xD1B9) return "X";
    
                if (i < 0xD4D1) return "Y";
    
                if (i < 0xD7FA) return "Z";
                return "*";
            }
    
    
    引用:
            codeS = codeS.OrderBy(x => GetFirstPY(x)).ToList();//using System.Linq;
    
  • 相关阅读:
    jquery选择器
    js实现添加className
    日期函数(date)
    IE6和IE7中<a>标签宽高设置无效的问题
    Uva 548 二叉树的递归遍历lrj 白书p155
    Uva 122 树的层次遍历 Trees on the level lrj白书 p149
    Uva 679 Dropping Ballls 二叉树的编号
    Uva 12657 Boxes in a Line 双向链表
    Uva 11988 Broken Keyboard STL+链表
    埃及分数问题+迭代加深搜索
  • 原文地址:https://www.cnblogs.com/gaara-zhang/p/10239223.html
Copyright © 2011-2022 走看看