Exemple #1
0
        public String Translate(String str, bool bMa)
        {
            StringBuilder sb = new StringBuilder();

            char[] c = str.ToLower().ToCharArray();
            int    startTableIndex = (bMa) ? 0 : 4;
            int    nextTableIndex  = startTableIndex;

            for (int i = 0; i < c.Length; i++)
            {
                if (c[i] >= 'a' && c[i] <= 'z')
                {
                    TransEntity t = TransTable[nextTableIndex, c[i] - 'a'];
                    sb.Append(t.Type);
                    nextTableIndex = t.NextTable;
                }
                else if (c[i] >= '가' && c[i] <= '힣')
                {
                    return(null);
                }
                else
                {
                    nextTableIndex = startTableIndex;
                    sb.Append(c[i]);
                }
            }
            return(sb.ToString());
        }
Exemple #2
0
        public Trans()
        {
            TransTable = new TransEntity[7, 26];

            for (int i = 0; i < 7; i++)
            {
                char c = 'a';
                for (int j = 0; j < 26; j++)
                {
                    TransEntity t;
                    if (i < 4)
                    {
                        t = new TransEntity((char)(c + j), table[i * 2][j], (byte)(table[i * 2 + 1][j] - 48));
                    }
                    else
                    {
                        t = new TransEntity((char)(c + j), table[i * 2][j], (byte)(table[i * 2 + 1][j] - 44));
                    }

                    TransTable[i, j] = t;
                }
            }
        }