仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 799|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之一个发生中文累计数的代码片段

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:34:10 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。中文为了营业的必要无聊之极的写了一个输入中文数字的办法,效力上委曲过得往,假如你有甚么更好的办法,跟贴吧。
1
2/**////<summary>
3///中文计数
4///</summary>
5///<paramname="num">[1-99999]</param>
6///<returns></returns>
7publicstaticstringNumToChineseNumStr(intnum)
8{
9if(num<=0||num>99999)
10thrownewArgumentException("num");
11string[]GradeChar=newstring[]{"","十","百","千","万"};
12string[]DigitChar=newstring[]{"一","二","三","四","五","六","七","八","九"};
13charzero=零;
14
15intlength=(int)Math.Log10(num)+1;
16StringBuilderoutput=newStringBuilder(length);
17int[]input=newint[length];
18intindex=-1;
19while(++index!=length)
20{
21input[index]=(num/(length-index==1?1:(int)Math.Pow(10,length-index-1)))%10;
22}
23
24boolneedFix=false;
25if(input.Length==2&&input[0]==1)
26needFix=true;
27
28for(intpos=0;pos<input.Length;pos++)
29{
30if(input[pos]==0)
31{
32if(output[output.Length-1]!=zero)
33output.Append(zero);
34continue;
35}
36elseif(!(pos==0&&needFix))
37{
38output.Append(DigitChar[input[pos]-1]);
39}
40output.Append(GradeChar[input.Length-pos-1]);
41}
42if(output[output.Length-1]==zero)
43output.Remove(output.Length-1,1);
44returnoutput.ToString();
45}
46
我认为,可以通过更加简单的首次编译,而增加第二次编译的负担,来提高java的运行效率。只是将java源代码进行简单的等价转换,而不假设编译成某种虚拟机器的目标格式,而由本地编译器针对性的二次编译。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-21 03:08

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表