问题描述
输入数字日期,转换为中文大写日期例输入2014年1月1日转换为贰零壹肆年壹月壹日为什么我的代码在比较中文字没有效果?如何比对中文字?usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication1{classClass2{publicstaticvoidMain(string[]args){char[]index={'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};stringdate;char[]temp;Console.WriteLine("请输入年月日");date=Console.ReadLine();temp=date.ToCharArray();for(inti=0;i<temp.Length;i++){inta;if(temp[i].CompareTo('年')!=0||temp[i].CompareTo('月')!=0||temp[i].CompareTo('日')!=0){a=int.Parse(temp[i].ToString());temp[i]=index[a];}}Console.WriteLine(temp);}}}}
解决方案
解决方案二:
呃,你为啥要用||呢你这是啥逻辑??
解决方案三:
直接用string.replace替换不就得了判断啥呢
解决方案四:
Replace挺好用的,为啥不用。
解决方案五:
把||该&&。因为||只要1个不匹配就进入里面的代码块。比如说你匹配“年”,虽然第一个判断匹配到(此时匹配结果为0),但是月日那里匹配就!=0了。
解决方案六:
if(temp[i].CompareTo('年')!=0&&temp[i].CompareTo('月')!=0&&temp[i].CompareTo('日')!=0)