[英]Using dictionary to convert string to char
我有這個代碼
static string WordMap(string value)
{
var strings = value
.Select(c =>
{
string word;
if (!wordMap.TryGetValue(c, out word))
word = c.ToString();
return word;
});
return string.Join("", strings);
}
和一本看起來像這樣的字典-
static Dictionary<char, string> wordMap = new Dictionary<char, string>()
{
{'a', "Alpha"}...
}
但是,我不想把字符變成文字,而是想做相反的事情。 但是因為我是一個真正的初學者,所以我無法弄清楚。
我看到我的意思感到困惑:
//i want this
input = alpha beta gama dalta
output = abgd
//i get this
input = alpha beta gama dalta
output = alpha lama pyhton hexa alpha...
看起來您想要做的是將映射從字符串反向轉換為char。 假設您已經完成了
static Dictionary<char, string> wordMap = new Dictionary<char, string>()
{
{'a', "Alpha"}...
}
因此,我們為另一個方向進行了新的映射:
static Dictionary<string, char> charMap;
public static void ConvertLookup ()
{
charMap = wordMap.ToDictionary(e => e.Value, e => e.Key);
}
但是,這假定的一件事是您的字符串是唯一的。
EDIt:因此,進一步介紹一下,據我了解,您想雙向發展。 因此,我們可以將所有內容放在一起,得到以下內容:
static Dictionary<char, string> wordMap = new Dictionary<char, string>();
static Dictionary<string, char> charMap = new Dictionary<string, char>();
public static void InitializeLookups()
{
wordMap = new Dictionary<char, string>
{
{ 'A', "Alice" },
{ 'B', "Bob" },
{ 'C', "Charlie" }
};
charMap = wordMap.ToDictionary(e => e.Value, e => e.Key);
}
public static string ConvertCharToWords(string chars)
{
var strings = chars
.Select(c =>
{
string word;
if (!wordMap.TryGetValue(c, out word))
word = c.ToString();
return word;
});
return string.Join(" ", strings);
}
public static string ConvertWordsToChars(string words)
{
var strings = words.Split(' ')
.Select(c =>
{
char character;
if (!charMap.TryGetValue(c, out character))
character = '?';
return character;
});
return string.Join("", strings);
}
public static void Main(string[] args)
{
InitializeLookups();
string words = ConvertCharToWords("ABC");
string chars = ConvertWordsToChars(words);
Console.WriteLine(words);
Console.WriteLine(chars);
}
輸入:
ABC
輸出:
Alice Bob Charlie
ABC
只是倒退。
static Dictionary<string, char> Mapword = new Dictionary<string, char>()
{
{"Alpha", 'a'}...
}
Dictionary<char, string> wordMap = new Dictionary<char, string>()
{
{'a', "Alpha"},
{'b', "Beta"},
{'d', "Dalta"},
{'g', "Gama"},
};
var input = "Alpha Beta Gama Dalta";
var output = input.Split()
.Select(word => wordMap.Where(x => x.Value == word)
.Select(x => x.Key).First());
var result = string.Join("", output);
Console.WriteLine(result);
// Output:
// abgd
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.