| 関東のアルファベットを「転写」してくれるライブラリです (C#) |
|---|
|
Download source files:
http://www.jkofsp.net/files/ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Takaku.ShangAlphabet { public class Transcription { public static readonly Transcription TheTranscription = new Transcription(); List<string> Map = new List<string>(677); private Transcription() { for (int i = 0; i <= 676; i++) Map.Add(null); Map[0] = "0"; Map[1] = "1"; Map[2] = "2"; Map[3] = "3"; Map[4] = "4"; Map[5] = "5"; Map[6] = "6"; Map[7] = "7"; Map[8] = "8"; Map[9] = "9"; Map[10] = "a"; Map[11] = "i"; Map[12] = "eu"; Map[13] = "u"; Map[14] = "e"; Map[15] = "o"; Map[16] = "ya"; Map[17] = "yu"; Map[18] = "ye"; Map[19] = "yo"; Map[20] = "wa"; Map[21] = "wi"; Map[22] = "we"; Map[23] = "wo"; Map[24] = "ha"; Map[25] = "hi"; Map[26] = "heu"; Map[27] = "hu"; Map[28] = "he"; Map[29] = "ho"; Map[30] = "hya"; Map[31] = "hyu"; Map[32] = "hye"; Map[33] = "hyo"; Map[34] = "hwa"; Map[35] = "hwi"; Map[36] = "hwe"; Map[37] = "hwo"; Map[38] = "hha"; Map[39] = "hhi"; Map[40] = "hheu"; Map[41] = "hhu"; Map[42] = "hhe"; Map[43] = "hho"; Map[44] = "hhya"; Map[45] = "hhyu"; Map[46] = "hhye"; Map[47] = "hhyo"; Map[48] = "hhwa"; Map[49] = "hhwi"; Map[50] = "hhwe"; Map[51] = "hhwo"; Map[52] = "H"; Map[53] = "qa"; Map[54] = "qi"; Map[55] = "qeu"; Map[56] = "qu"; Map[57] = "qe"; Map[58] = "qo"; Map[59] = "qya"; Map[60] = "qyu"; Map[61] = "qye"; Map[62] = "qyo"; Map[63] = "qwa"; Map[64] = "qwi"; Map[65] = "qwe"; Map[66] = "qwo"; Map[67] = "qha"; Map[68] = "qhi"; Map[69] = "qheu"; Map[70] = "qhu"; Map[71] = "qhe"; Map[72] = "qho"; Map[73] = "qhya"; Map[74] = "qhyu"; Map[75] = "qhye"; Map[76] = "qhyo"; Map[77] = "qhwa"; Map[78] = "qhwi"; Map[79] = "qhwe"; Map[80] = "qhwo"; Map[81] = "Ga"; Map[82] = "Gi"; Map[83] = "Geu"; Map[84] = "Gu"; Map[85] = "Ge"; Map[86] = "Go"; Map[87] = "Gya"; Map[88] = "Gyu"; Map[89] = "Gye"; Map[90] = "Gyo"; Map[91] = "Gwa"; Map[92] = "Gwi"; Map[93] = "Gwe"; Map[94] = "Gwo"; Map[95] = "Gha"; Map[96] = "Ghi"; Map[97] = "Gheu"; Map[98] = "Ghu"; Map[99] = "Ghe"; Map[100] = "Gho"; Map[101] = "Ghya"; Map[102] = "Ghyu"; Map[103] = "Ghye"; Map[104] = "Ghyo"; Map[105] = "Ghwa"; Map[106] = "Ghwi"; Map[107] = "Ghwe"; Map[108] = "Ghwo"; Map[109] = "Xa"; Map[110] = "Xi"; Map[111] = "Xeu"; Map[112] = "Xu"; Map[113] = "Xe"; Map[114] = "Xo"; Map[115] = "Xya"; Map[116] = "Xyu"; Map[117] = "Xye"; Map[118] = "Xyo"; Map[119] = "Xwa"; Map[120] = "Xwi"; Map[121] = "Xwe"; Map[122] = "Xwo"; Map[123] = "XXa"; Map[124] = "XXi"; Map[125] = "XXeu"; Map[126] = "XXu"; Map[127] = "XXe"; Map[128] = "XXo"; Map[129] = "XXya"; Map[130] = "XXyu"; Map[131] = "XXye"; Map[132] = "XXyo"; Map[133] = "XXwa"; Map[134] = "XXwi"; Map[135] = "XXwe"; Map[136] = "XXwo"; Map[137] = "N"; Map[138] = "ka"; Map[139] = "ki"; Map[140] = "keu"; Map[141] = "ku"; Map[142] = "ke"; Map[143] = "ko"; Map[144] = "kya"; Map[145] = "kyu"; Map[146] = "kye"; Map[147] = "kyo"; Map[148] = "kwa"; Map[149] = "kwi"; Map[150] = "kwe"; Map[151] = "kwo"; Map[152] = "kha"; Map[153] = "khi"; Map[154] = "kheu"; Map[155] = "khu"; Map[156] = "khe"; Map[157] = "kho"; Map[158] = "khya"; Map[159] = "khyu"; Map[160] = "khye"; Map[161] = "khyo"; Map[162] = "khwa"; Map[163] = "khwi"; Map[164] = "khwe"; Map[165] = "khwo"; Map[166] = "ga"; Map[167] = "gi"; Map[168] = "geu"; Map[169] = "gu"; Map[170] = "ge"; Map[171] = "go"; Map[172] = "gya"; Map[173] = "gyu"; Map[174] = "gye"; Map[175] = "gyo"; Map[176] = "gwa"; Map[177] = "gwi"; Map[178] = "gwe"; Map[179] = "gwo"; Map[180] = "gha"; Map[181] = "ghi"; Map[182] = "gheu"; Map[183] = "ghu"; Map[184] = "ghe"; Map[185] = "gho"; Map[186] = "ghya"; Map[187] = "ghyu"; Map[188] = "ghye"; Map[189] = "ghyo"; Map[190] = "ghwa"; Map[191] = "ghwi"; Map[192] = "ghwe"; Map[193] = "ghwo"; Map[194] = "xa"; Map[195] = "xi"; Map[196] = "xeu"; Map[197] = "xu"; Map[198] = "xe"; Map[199] = "xo"; Map[200] = "xya"; Map[201] = "xyu"; Map[202] = "xye"; Map[203] = "xyo"; Map[204] = "xwa"; Map[205] = "xwi"; Map[206] = "xwe"; Map[207] = "xwo"; Map[208] = "xxa"; Map[209] = "xxi"; Map[210] = "xxeu"; Map[211] = "xxu"; Map[212] = "xxe"; Map[213] = "xxo"; Map[214] = "xxya"; Map[215] = "xxyu"; Map[216] = "xxye"; Map[217] = "xxyo"; Map[218] = "xxwa"; Map[219] = "xxwi"; Map[220] = "xxwe"; Map[221] = "xxwo"; Map[222] = "nga"; Map[223] = "ngi"; Map[224] = "ngeu"; Map[225] = "ngu"; Map[226] = "nge"; Map[227] = "ngo"; Map[228] = "ngya"; Map[229] = "ngyu"; Map[230] = "ngye"; Map[231] = "ngyo"; Map[232] = "ngwa"; Map[233] = "ngwi"; Map[234] = "ngwe"; Map[235] = "ngwo"; Map[236] = "ca"; Map[237] = "ci"; Map[238] = "cu"; Map[239] = "ce"; Map[240] = "co"; Map[241] = "cha"; Map[242] = "chi"; Map[243] = "chu"; Map[244] = "che"; Map[245] = "cho"; Map[246] = "ja"; Map[247] = "ji"; Map[248] = "ju"; Map[249] = "je"; Map[250] = "jo"; Map[251] = "jha"; Map[252] = "jhi"; Map[253] = "jhu"; Map[254] = "jhe"; Map[255] = "jho"; Map[256] = "Ca"; Map[257] = "Ci"; Map[258] = "Cu"; Map[259] = "Ce"; Map[260] = "Co"; Map[261] = "Ja"; Map[262] = "Ji"; Map[263] = "Ju"; Map[264] = "Je"; Map[265] = "Jo"; Map[266] = "nja"; Map[267] = "nji"; Map[268] = "nju"; Map[269] = "nje"; Map[270] = "njo"; Map[271] = "sa"; Map[272] = "si"; Map[273] = "seu"; Map[274] = "su"; Map[275] = "se"; Map[276] = "so"; Map[277] = "sya"; Map[278] = "syu"; Map[279] = "sye"; Map[280] = "syo"; Map[281] = "swa"; Map[282] = "swi"; Map[283] = "swe"; Map[284] = "swo"; Map[285] = "za"; Map[286] = "zi"; Map[287] = "zeu"; Map[288] = "zu"; Map[289] = "ze"; Map[290] = "zo"; Map[291] = "zya"; Map[292] = "zyu"; Map[293] = "zye"; Map[294] = "zyo"; Map[295] = "zwa"; Map[296] = "zwi"; Map[297] = "zwe"; Map[298] = "zwo"; Map[299] = "Sa"; Map[300] = "Si"; Map[301] = "Su"; Map[302] = "Se"; Map[303] = "So"; Map[304] = "Za"; Map[305] = "Zi"; Map[306] = "Zu"; Map[307] = "Ze"; Map[308] = "Zo"; Map[309] = "ta"; Map[310] = "ti"; Map[311] = "teu"; Map[312] = "tu"; Map[313] = "te"; Map[314] = "to"; Map[315] = "tya"; Map[316] = "tyu"; Map[317] = "tye"; Map[318] = "tyo"; Map[319] = "twa"; Map[320] = "twi"; Map[321] = "twe"; Map[322] = "two"; Map[323] = "tha"; Map[324] = "thi"; Map[325] = "theu"; Map[326] = "thu"; Map[327] = "the"; Map[328] = "tho"; Map[329] = "thya"; Map[330] = "thyu"; Map[331] = "thye"; Map[332] = "thyo"; Map[333] = "thwa"; Map[334] = "thwi"; Map[335] = "thwe"; Map[336] = "thwo"; Map[337] = "da"; Map[338] = "di"; Map[339] = "deu"; Map[340] = "du"; Map[341] = "de"; Map[342] = "do"; Map[343] = "dya"; Map[344] = "dyu"; Map[345] = "dye"; Map[346] = "dyo"; Map[347] = "dwa"; Map[348] = "dwi"; Map[349] = "dwe"; Map[350] = "dwo"; Map[351] = "dha"; Map[352] = "dhi"; Map[353] = "dheu"; Map[354] = "dhu"; Map[355] = "dhe"; Map[356] = "dho"; Map[357] = "dhya"; Map[358] = "dhyu"; Map[359] = "dhye"; Map[360] = "dhyo"; Map[361] = "dhwa"; Map[362] = "dhwi"; Map[363] = "dhwe"; Map[364] = "dhwo"; Map[365] = "Ta"; Map[366] = "Ti"; Map[367] = "Teu"; Map[368] = "Tu"; Map[369] = "Te"; Map[370] = "To"; Map[371] = "Tya"; Map[372] = "Tyu"; Map[373] = "Tye"; Map[374] = "Tyo"; Map[375] = "Twa"; Map[376] = "Twi"; Map[377] = "Twe"; Map[378] = "Two"; Map[379] = "Da"; Map[380] = "Di"; Map[381] = "Deu"; Map[382] = "Du"; Map[383] = "De"; Map[384] = "Do"; Map[385] = "Dya"; Map[386] = "Dyu"; Map[387] = "Dye"; Map[388] = "Dyo"; Map[389] = "Dwa"; Map[390] = "Dwi"; Map[391] = "Dwe"; Map[392] = "Dwo"; Map[393] = "na"; Map[394] = "ni"; Map[395] = "neu"; Map[396] = "nu"; Map[397] = "ne"; Map[398] = "no"; Map[399] = "nya"; Map[400] = "nyu"; Map[401] = "nye"; Map[402] = "nyo"; Map[403] = "nwa"; Map[404] = "nwi"; Map[405] = "nwe"; Map[406] = "nwo"; Map[407] = "jna"; Map[408] = "jni"; Map[409] = "jnu"; Map[410] = "jne"; Map[411] = "jno"; Map[412] = "tsa"; Map[413] = "tsi"; Map[414] = "tseu"; Map[415] = "tsu"; Map[416] = "tse"; Map[417] = "tso"; Map[418] = "tsya"; Map[419] = "tsyu"; Map[420] = "tsye"; Map[421] = "tsyo"; Map[422] = "tswa"; Map[423] = "tswi"; Map[424] = "tswe"; Map[425] = "tswo"; Map[426] = "tsha"; Map[427] = "tshi"; Map[428] = "tsheu"; Map[429] = "tshu"; Map[430] = "tshe"; Map[431] = "tsho"; Map[432] = "tshya"; Map[433] = "tshyu"; Map[434] = "tshye"; Map[435] = "tshyo"; Map[436] = "tshwa"; Map[437] = "tshwi"; Map[438] = "tshwe"; Map[439] = "tshwo"; Map[440] = "dza"; Map[441] = "dzi"; Map[442] = "dzeu"; Map[443] = "dzu"; Map[444] = "dze"; Map[445] = "dzo"; Map[446] = "dzya"; Map[447] = "dzyu"; Map[448] = "dzye"; Map[449] = "dzyo"; Map[450] = "dzwa"; Map[451] = "dzwi"; Map[452] = "dzwe"; Map[453] = "dzwo"; Map[454] = "dzha"; Map[455] = "dzhi"; Map[456] = "dzheu"; Map[457] = "dzhu"; Map[458] = "dzhe"; Map[459] = "dzho"; Map[460] = "dzhya"; Map[461] = "dzhyu"; Map[462] = "dzhye"; Map[463] = "dzhyo"; Map[464] = "dzhwa"; Map[465] = "dzhwi"; Map[466] = "dzhwe"; Map[467] = "dzhwo"; Map[468] = "tSa"; Map[469] = "tSi"; Map[470] = "tSu"; Map[471] = "tSe"; Map[472] = "tSo"; Map[473] = "tSha"; Map[474] = "tShi"; Map[475] = "tShu"; Map[476] = "tShe"; Map[477] = "tSho"; Map[478] = "dZa"; Map[479] = "dZi"; Map[480] = "dZu"; Map[481] = "dZe"; Map[482] = "dZo"; Map[483] = "dZha"; Map[484] = "dZhi"; Map[485] = "dZhu"; Map[486] = "dZhe"; Map[487] = "dZho"; Map[488] = "pa"; Map[489] = "pi"; Map[490] = "peu"; Map[491] = "pu"; Map[492] = "pe"; Map[493] = "po"; Map[494] = "pya"; Map[495] = "pyu"; Map[496] = "pye"; Map[497] = "pyo"; Map[498] = "pha"; Map[499] = "phi"; Map[500] = "pheu"; Map[501] = "phu"; Map[502] = "phe"; Map[503] = "pho"; Map[504] = "phya"; Map[505] = "phyu"; Map[506] = "phye"; Map[507] = "phyo"; Map[508] = "ba"; Map[509] = "bi"; Map[510] = "beu"; Map[511] = "bu"; Map[512] = "be"; Map[513] = "bo"; Map[514] = "bya"; Map[515] = "byu"; Map[516] = "bye"; Map[517] = "byo"; Map[518] = "bha"; Map[519] = "bhi"; Map[520] = "bheu"; Map[521] = "bhu"; Map[522] = "bhe"; Map[523] = "bho"; Map[524] = "bhya"; Map[525] = "bhyu"; Map[526] = "bhye"; Map[527] = "bhyo"; Map[528] = "Pa"; Map[529] = "Pi"; Map[530] = "Peu"; Map[531] = "Pu"; Map[532] = "Pe"; Map[533] = "Po"; Map[534] = "Pya"; Map[535] = "Pyu"; Map[536] = "Pye"; Map[537] = "Pyo"; Map[538] = "ma"; Map[539] = "mi"; Map[540] = "meu"; Map[541] = "mu"; Map[542] = "me"; Map[543] = "mo"; Map[544] = "mya"; Map[545] = "myu"; Map[546] = "mye"; Map[547] = "myo"; Map[548] = "fa"; Map[549] = "fi"; Map[550] = "feu"; Map[551] = "fu"; Map[552] = "fe"; Map[553] = "fo"; Map[554] = "fya"; Map[555] = "fyu"; Map[556] = "fye"; Map[557] = "fyo"; Map[558] = "va"; Map[559] = "vi"; Map[560] = "veu"; Map[561] = "vu"; Map[562] = "ve"; Map[563] = "vo"; Map[564] = "vya"; Map[565] = "vyu"; Map[566] = "vye"; Map[567] = "vyo"; Map[568] = "ra"; Map[569] = "ri"; Map[570] = "reu"; Map[571] = "ru"; Map[572] = "re"; Map[573] = "ro"; Map[574] = "rya"; Map[575] = "ryu"; Map[576] = "rye"; Map[577] = "ryo"; Map[578] = "rwa"; Map[579] = "rwi"; Map[580] = "rwe"; Map[581] = "rwo"; Map[582] = "space"; Map[583] = "enter"; Map[584] = "。"; Map[585] = "、"; Map[586] = ":"; Map[587] = ";"; Map[588] = "?"; Map[589] = "!"; Map[590] = "…"; Map[591] = "@"; Map[592] = "#"; Map[593] = "&"; Map[594] = "%"; Map[595] = "|"; Map[596] = "`"; Map[597] = "("; Map[598] = ")"; Map[599] = "{"; Map[600] = "}"; Map[601] = "["; Map[602] = "]"; Map[603] = "「"; Map[604] = "」"; Map[605] = "『"; Map[606] = "』"; Map[607] = "【"; Map[608] = "】"; Map[609] = "°"; // 度 Map[610] = "∞"; Map[611] = "∝"; Map[612] = "※"; Map[613] = "*"; Map[614] = "★"; Map[615] = "☆"; Map[616] = "♪"; Map[617] = "+"; Map[618] = "-"; // 全マイナス Map[619] = "±"; Map[620] = "_"; // 全アンダーライン Map[621] = "×"; // かける,乗算 Map[622] = "・"; // 中点 Map[623] = "÷"; Map[624] = "/"; Map[625] = "\"; Map[626] = "^"; Map[627] = "√"; Map[628] = "o+"; // 半角 Map[629] = "o*"; // 半角 Map[630] = "="; Map[631] = "≠"; Map[632] = "≒"; Map[633] = "≡"; Map[634] = "<"; Map[635] = "≪"; // より非常に小さい Map[636] = "≦"; Map[637] = ">"; Map[638] = "≫"; // より非常に大きい Map[639] = "≧"; Map[640] = "¬"; // でない,否定 Map[641] = "∨"; Map[642] = "∧"; Map[643] = "~"; Map[644] = "∵"; Map[645] = "∴"; Map[646] = "∀"; Map[647] = "∃"; Map[648] = "∈"; Map[649] = "∈≠"; Map[650] = "∋"; Map[651] = "∋≠"; Map[652] = "⊂"; Map[653] = "⊆"; Map[654] = "⊃"; Map[655] = "⊇"; Map[656] = "∪"; Map[657] = "∩"; Map[658] = "o/"; // 半角 Map[659] = "→"; Map[660] = "←"; Map[661] = "↑"; Map[662] = "↓"; Map[663] = "⇒"; Map[664] = "<="; Map[665] = "⇔"; Map[666] = "⊿"; // 環境依存文字 Map[667] = "∇"; Map[668] = "∑"; // 環境依存文字 Map[669] = "∑∑"; // 環境依存文字 Map[670] = "dd"; // 半角 Map[671] = "∂"; Map[672] = "∫"; Map[673] = "∮"; // 環境依存文字 Map[674] = "∬"; // 2重積分 Map[675] = "∮∮"; // 環境依存文字 Map[676] = "∫∬"; // 積分 2重積分 } public string Transcribe(ushort[] sa) { if (sa == null) return null; if (sa.Length == 0) return ""; StringBuilder ret = new StringBuilder(); ret.Append(Map[sa[0]]); for (int i = 1; i < sa.Length; i++) ret.Append('_').Append(Map[sa[i]]); return ret.ToString(); } public ushort[] Untranscribe(string transcribedSA) { if (transcribedSA == null) return null; if (transcribedSA == "") return new ushort[0]; string[] tmp = transcribedSA.Split(new char[] { '_', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); ushort[] ret = new ushort[tmp.Length]; for (int i = 0; i < tmp.Length; i++) { int index = Map.IndexOf(tmp[i]); if (index < 0) throw new Exception(); ret[i] = (ushort)index; } return ret; } public string TranslateNumber(ushort[] sa) { string ret = ""; foreach (ushort i in sa) { if (i >= 0 && i <= 9) ret += i.ToString(); else if (i == Untranscribe("-")[0]) ret += '-'; else if (i == Untranscribe("・")[0]) ret += '.'; else if (i == Untranscribe("e")[0]) ret += 'e'; } return ret; } public string TranslateNumber(string transcribedSA) { return TranslateNumber(Untranscribe(transcribedSA)); } public string TranslateNumberHex(ushort[] sa) { string ret = ""; foreach (ushort i in sa) { if (i >= 0 && i <= 9) ret += i.ToString(); else if (i >= 10 && i <= 15) ret += (char)('a' + (i - 10)); } return ret; } public string TranslateNumberHex(string transcribedSA) { return TranslateNumberHex(Untranscribe(transcribedSA)); } public ushort[] UntranslateNumber(string abc) { List<ushort> ret = new List<ushort>(); foreach (char i in abc) { if (i >= '0' && i <= '9') ret.Add((ushort)(i - '0')); else if (i == '-') ret.Add(Untranscribe("-")[0]); else if (i == '.') ret.Add(Untranscribe("・")[0]); else if (i == 'e' || i == 'E') ret.Add(Untranscribe("e")[0]); } return ret.ToArray(); } public string _UntranslateNumber(string abc) { return Transcribe(UntranslateNumber(abc)); } public ushort[] UntranslateNumberHex(string abc) { List<ushort> ret = new List<ushort>(); string _abc = abc.ToLower(); foreach (char i in _abc) { if (i >= '0' && i <= '9') ret.Add((ushort)(i - '0')); else if (i >= 'a' && i <='f') ret.Add((ushort)((i - 'a') + 10)); } return ret.ToArray(); } public string _UntranslateNumberHex(string abc) { return Transcribe(UntranslateNumberHex(abc)); } } } |