我是编程新手。这是我的代码:
public string ThanglishToTamilList(char[] characters, int length) {
var dict1 = new Dictionary<string, string>();
dict1.Add("a", "\u0B85"); // அ
dict1.Add("aa", "\u0B86"); // ஆ
dict1.Add("A", "\u0B86"); // ஆ
dict1.Add("i", "\u0B87"); // இ
dict1.Add("ee", "\u0B88"); // ஈ
dict1.Add("I", "\u0B88"); // ஈ
dict1.Add("u", "\u0B89"); // உ
...
List<String> list = new List<String>();
string[] array;
var valueOfDictOne = "";
for (int i = 0; i < length; i++)
{
try
{
valueOfDictOne = dict1[characters[i].ToString()];
list.Add(valueOfDictOne);
}
catch
{
list.Add(characters[i].ToString());
}
}
array = list.ToArray();
string result = string.Join("", array);
return result;
}
功能参数详情:
char[] characters : 字符数组 (textbox.text.ToCharArray())
int length :数组的长度。(我们在文本框中输入的字符数)
我的预期输出应该是:
如果用户键入a -> 输出应该是அ。
同样地:
一个->அ</p>
aa -> ஆ</p>
A -> ஆ ...
注意 aa 和 A 代表相同的ஆ</p>
我的问题: 此代码仅替换一个字符(a -> அ),这很好用。
但是如果我们输入 aa 输出是 அஅ
aa -> அஅ
但我需要正确的输出
aa -> ஆ</p>
我为此添加了一些代码行。但这不起作用:
...
for (int i = 0; i < length; i++)
{
try
{
if (String.Equals(characters[i], "a") && !(String.Equals(characters[i], "aa")))
{
//MessageBox.Show("a");
valueOfDictOne = dict1[characters[i].ToString()];
list.Add(valueOfDictOne);
}
else if (String.Equals(characters[i], "aa"))
{
//MessageBox.Show("aa");
valueOfDictOne = dict1[characters[i].ToString()];
list.Add(valueOfDictOne);
}
}
catch
{
list.Add(characters[i].ToString());
}
}
...
请帮助我更正此代码或提供任何简单的替代音译方法。
谢谢你。