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()); }
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; } } }