我是編程新手。這些是我的代碼:如何在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