黑馬程式設計師-習題練習3
阿新 • • 發佈:2019-02-04
//編寫一個函式進行日期轉換,將輸入的中文日期轉換為阿拉伯數字日期,比如:
//二零一二年十二月月二十一日要轉換為2012-12-2 1。(處理“十”的問題:
//1.*月十日;2.*月十三日;3.*月二十三日;4.*月三十日。4種情況對“十”的不同翻譯。
//1→10;2→1;3→不翻譯;4→0【年部分不可能出現’十’,都出現在了月與日部分。】
//測試資料:二零一二年十二月二十一日、二零零九年七月九日、二零一零年十月二十四日、
//二零一零年十月二十日
static void Main(string[] args)
{
string date = "二零一二年二月二一日";
string strNumb = "一1 二2 三3 四4 五5 六6 七7 八8 九9 零0";
string[] strNumbs = strNumb.Split(' ');
string nullYear = "";
Dictionary<char, char> years = new Dictionary<char, char>();
for (int i = 0; i < strNumbs.Length; i++)
{
years.Add(strNumbs[i][0], strNumbs[i][1]);
}
//years.Add('年', '-');
//years.Add('月', '-');
for (int i = 0; i < date.Length; i++)
{
if (years.ContainsKey(date[i]))
{
nullYear += years[date[i]];
}
else if (date[i] == '年' || date[i] == '月' )
{
nullYear += '-';
}
else if (date[i] == '十' && years.ContainsKey(date[i + 1]) && !years.ContainsKey(date[i - 1]))
{
nullYear += '1';
}
else if (date[i] == '十' && !years.ContainsKey(date[i + 1]) && years.ContainsKey(date[i - 1]))
{
nullYear += '0';
}
else if (date[i] == '十' && !years.ContainsKey(date[i + 1]) && !years.ContainsKey(date[i - 1]))
{
nullYear += "10";
}
}
Console.WriteLine(nullYear);
Console.ReadKey();
}
//二零一二年十二月月二十一日要轉換為2012-12-2 1。(處理“十”的問題:
//1.*月十日;2.*月十三日;3.*月二十三日;4.*月三十日。4種情況對“十”的不同翻譯。
//1→10;2→1;3→不翻譯;4→0【年部分不可能出現’十’,都出現在了月與日部分。】
//測試資料:二零一二年十二月二十一日、二零零九年七月九日、二零一零年十月二十四日、
//二零一零年十月二十日
static void Main(string[] args)
{
string date = "二零一二年二月二一日";
string strNumb = "一1 二2 三3 四4 五5 六6 七7 八8 九9 零0";
string[] strNumbs = strNumb.Split(' ');
string nullYear = "";
Dictionary<char, char> years = new Dictionary<char, char>();
for (int i = 0; i < strNumbs.Length; i++)
{
years.Add(strNumbs[i][0], strNumbs[i][1]);
}
//years.Add('年', '-');
//years.Add('月', '-');
for (int i = 0; i < date.Length; i++)
{
if (years.ContainsKey(date[i]))
{
nullYear += years[date[i]];
}
else if (date[i] == '年' || date[i] == '月' )
{
nullYear += '-';
}
else if (date[i] == '十' && years.ContainsKey(date[i + 1]) && !years.ContainsKey(date[i - 1]))
{
nullYear += '1';
}
else if (date[i] == '十' && !years.ContainsKey(date[i + 1]) && years.ContainsKey(date[i - 1]))
{
nullYear += '0';
}
else if (date[i] == '十' && !years.ContainsKey(date[i + 1]) && !years.ContainsKey(date[i - 1]))
{
nullYear += "10";
}
}
Console.WriteLine(nullYear);
Console.ReadKey();
}