C#中把数字转换成大写汉字

我的一个字符串是“刘和-100”,我想转换成“刘和壹零零”,把中间的横号去了和把后面的数字转换成汉字
2楼的大哥,我这个不是金钱的转换。 麻烦3楼的能给我再说清楚一点吗?我还是个新手,能给我写下吗?我可以再送分的。

有些方法名字我可能记得不对了,你看需要稍微改改就可以了。
这个调用是静态的,不需要new这个类。
使用的时候直接用:
CastToChineseNumber.DoCast("xxx-400");
这样的形式就可以了

public class CastToChineseNumber {
// 实施转换的主方法,静态函数。
public static string DoCast(string input) {
if (String.IsNullOrEmpty(input)) return ""; // 如果输入为空则返回空
string src = input; // 原始字符串的副本
string ret = ""; // 准备返回的结果字符串
for (int i = 0; i < src.Length; i++) {
switch src.Get(i) { // 获取当前位置的字符,可能C#里面不叫Get吧,你自己再看看相关方法,下面一样需要替换。。。
case "-": ret += src.Get(i) // 去掉"-"
break;
case "0": ret += "零";
break;
case "1": ret += "壹";
break;
case "2": ret += "贰";
break;
// ......
// 0-9 依次写成上面那样的汉字,我就不逐个给你写了
defalut: ret += src.Get(i); // 其他文字逐个复制过来
break;
}
}
return ret;
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-15
string[] cnNum = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };

string str = "刘和-10045454-34"; //此处是你自己的字符串

for (int i = 0; i < 10; i++)
{
str = str.Replace(i.ToString(), cnNum[i]);
}

str = str.Replace("-", "");

//str 就是最终的结果
第2个回答  2009-06-15
我晕死上面的几个家伙,人家提问题的没说要转换成数学读法只是简单的把数字转换成汉字而已,我连货币都看到了!

这个很简单
1.分割字符串,至于你使用IndexOf+SubString还是正则表达式(-\d+)分割那随意,没有什么影响
2.替换字符串。最简单的是构造一个中文的数字数组 new string{"零","壹".....}一直到10,然后构造一个for循环替换下就行了。
第3个回答  2009-06-15
string strMoji = '刘和-100';//目标字符

//带入下面函数
private void changeMoji(string strGoal)
{
//替换所有字符
strGoal.Replace("1","壹");
strGoal.Replace("0","零");
//去除 -
string[] strArr = strGoal.split('-');
string strResul = string.empty;
//还原你想要的字符串
strResul = strAr[0]+ strAr[0];
//打印
messagebox.show(strResul);
}
第4个回答  2009-06-16
//这个满意了? 字符串随便来 都把你装成大写 OK了?
string[] chinese = new string[] { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
//这里添加还需要去除点的字符
string[] deleString = { "-" };
//string s = "刘和-fd--sa100fsafdsa21321fdsaf"; //测试1
string s = "刘和-ffdsaf3fdsa3432afdsa100fsafdsa21321fdf432sa32fewa322af"; //测试2
string b = string.Empty;
int index = 0;
foreach (string del in deleString)
{
s = s.Replace(del, "");
}
while (index < s.Length)
{
try
{
int a = Convert.ToInt32(s.Substring(index, 1));
b += chinese[a];
}
catch
{
b += s.Substring(index, 1);
}
index++;
}
//b 就是你所想要的

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网