我是编程新手。这些是我的代码:如何在c#.net 4.0上音译?
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;
}
功能参数细节:
炭[]字符:字符阵列(textbox.text.ToCharArray())
INT长度:长度阵列。 (字符,我们在文本框中键入)
我预期的输出应该是:
如果用户键入一个 - >输出应该是அ。
同样:
一个 - >அ
AA - >ஆ
A - >ஆ ...
注意,AA &一个代表相同ஆ
我的问题: 此代码只取代一个字符(a - >அ),这工作正常。
但是,如果我们AA型输出அஅ
AA - >அஅ
但我需要正确的输出
AA - >ஆ
我已经添加了一些线为此编码。但这并没有工作:
...
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());
}
}
...
请帮我解决这个代码或请提供任何简单的替代方式音译。
谢谢。
你是否有这样的事情被keydown/keypress事件调用?如果是这样 - 它可能只是调用你的函数两次'...' – 2013-05-13 07:57:07
我认为'String.Equals(character [i],“aa”)'将永远是错误的,因为一个字符永远不会等于两个字符 – Pako 2013-05-13 08:18:17
1.尽管您已经添加了一些代码行,但第二个代码片段与第一个代码片段完全相同。 2.你在这里指定的代码没有问题。请检查您传递给此方法的参数。 – neo 2013-05-13 08:10:15