JAVA 编程 输出金额的中文大写形式

// 如果用户当初输入的时候只输入了 0,则只返回一个 "零"

public class Text {

金额正则表达式 金额的正则金额正则表达式 金额的正则


金额正则表达式 金额的正则


金额正则表达式 金额的正则


/

测试程序的可行性

@param args

public static void main(String[] args) {

System.out.println("--------将数字转换成中文金额的大写形式------------n");

Trans2RMB t2r = new Trans2RMB();

String s = t2r.cleanZero(t2r.splitNum(t2r.roundString(t2r.getNum())));

// 如果转换过后是一个空串,则不输出屏幕

if(!"".equals(s)) {

System.out.println("转换成中文后为:" + s);;

}/

从命令行接收一个数,在其中调用 checkNum() 方法对其进行

验证,并返回相应的值

@return 如果输入合法,返回输入的这个数

private String getNum() {

String s = null;

System.out.println("请输入一个数字(到小数点后两位):");

// 从命令行输入这个浮点数

s = scanner.next();

// 判断用户输入是否合法

// 若合法,返回这个值;若非法返回 "0"

if(this.checkNum(s)) {

return s;

} else {

}}

/

判断用户输入的数据是否合法,用户只能输入大于零的数字,不能输入其它字符

@param s String

@return 如果用户输入数据合法,返回 true,否则返回 false

private boolean checkNum(String s) {

// 如果用户输入的数里有非数字字符,则视为非法数据,返回 false

try {

// 如果这个数小于零则视为非法数据,返回 false

if(f < 0) {

System.out.println("非法数据,请检查!");

return false;

return tv = v.replace(/^[^d]+(d+.?d)$/, '$1');rue;

}} catch (NumberFormatException e) {

System.out.println("非法数据,请检查!");

return false;

}}

/

把用户输入的数以小数点为界分割开来,并调用 numFormat() 方法

进行相应的中文金额大写形式的转换

注:传入的这个数应该是经过 roundString() 方法进行了四舍五入作的

@param s String

@return 转换好的中文金额大写形式的字符串

private String splitNum(String s) {

// 如果传入的是空串则继续返回空串

}// 以小数点为界分割这个字符串

int index = s.indexOf(".");

// 截取并转换这个数的整数部分

String part1 = this.numFormat(1, intOnly);

// 截取并转换这个数的小数部分

String allOnly = s.substring(index + 1);

String part2 = this.numFormat(2, allOnly);

// 把转换好了的整数部分和小数部分重新拼凑一个新的字符串

String newS = part1 + part2;

return newS;

}/

对传入的数进行四舍五入作

@return 四舍五入后的新值

private String roundString(String s) {

// 如果传入的是空串则继续返回空串

}// 将这个数转换成 double 类型,并对其进行四舍五入作

double d = Double.parseDouble(s);

// 此作作用在小数点后两位上

d = (d 100 + 0.5) / 100;

// 将 d 进行格式化

s = new ja.text.DecimalFormat("##0.000").format(d);

int index = s.indexOf(".");

// 这个数的整数部分

// 规定数值的长度只能到万亿单位,否则返回 "0"

if(intOnly.length()13) {

System.out.println("输入数据过大!(整数部分最多13位!)");

}// 这个数的小数部分

String allOnly = s.substring(index + 1);

// 如果小数部分大于两位,只截取小数点后两位

if(allOnly.length()2) {

s = intOnly + "." + roundSmall;

}return s;

}/

把传入的数转换为中文金额大写形式

@param flag int 标志位,1 表示转换整数部分,0 表示转换小数部分

@return 转换好的带单位的中文金额大写形式

private String numFormat(int flag, String s) {

int sLength = s.length();

// 货大写形式

String bigLetter args) {

System.out.println("--------将数字转换成中文金额的大写形式------------n");

Trans2RMB t2r = new Trans2RMB();

String s = t2r.cleanZero(t2r.splitNum(t2r.roundString(t2r.getNum())));

// 如果转换过后是一个空串,则不输出屏幕

if(!"".equals(s)) {

System.out.println("转换成中文后为:" + s);;

}/

从命令行接收一个数,在其中调用 checkNum() 方法对其进行

验证,并返回相应的值

@return 如果输入合法,返回输入的这个数

private String getNum() {

String s = null;

System.out.println("请输入一个数字(到小数点后两位):");

// 从命令行输入这个浮点数

s = scanner.next();

// 判断用户输入是否合法

// 若合法,返回这个值;若非法返回 "0"

if(this.checkNum(s)) {

return s;

} else {

}}

/

判断用户输入的数据是否合法,用户只能输入大于零的数字,不能输入其它字符

@param s String

@return 如果用户输入数据合法,返回 true,否则返回 false

private boolean checkNum(String s) {

// 如果用户输入的数里有非数字字符,则视为非法数据,返回 false

try {

// 如果这个数小于零则视为非法数据,返回 false

if(f < 0) {

System.out.println("非法数据,请检查!");

return false;

return true;

}} catch (NumberFormatException e) {

System.out.println("非法数据,请检查!");

return false;

}}

/

把用户输入的数以小数点为界分割开来,并调用 numFormat() 方法

进行相应的中文金额大写形式的转换

注:传入的这个数应该是经过 roundString() 方法进行了四舍五入作的

@param s String

@return 转换好的中文金额大写形式的字符串

private String splitNum(String s) {

// 如果传入的是空串则继续返回空串

}// 以小数点为界分割这个字符串

int index = s.indexOf(".");

// 截取并转换这个数的整数部分

String part1 = this.numFormat(1, intOnly);

// 截取并转换这个数的小数部分

String allOnly = s.substring(index + 1);

String part2 = this.numFormat(2, allOnly);

// 把转换好了的整数部分和小数部分重新拼凑一个新的字符串

String newS = part1 + part2;

return newS;

}/

对传入的数进行四舍五入作

@return 四舍五入后的新值

private String roundString(String s) {

// 如果传入的是空串则继续返回空串

}// 将这个数转换成 double 类型,并对其进行四舍五入作

double d = Double.parseDouble(s);

// 此作作用在小数点后两位上

d = (d 100 + 0.5) / 100;

// 将 d 进行格式化

s = new ja.text.DecimalFormat("##0.000").format(d);

int index = s.indexOf(".");

// 这个数的整数部分

// 规定数值的长度只能到万亿单位,否则返回 "0"

if(intOnly.length()13) {

System.out.println("输入数据过大!(整数部分最多13位!)");

}// 这个数的小数部分

String allOnly = s.substring(index + 1);

// 如果小数部分大于两位,只截取小数点后两位

if(allOnly.length()2) {

s = intOnly + "." + roundSmall;

}return s;

}/

把传入的数转换为中文金额大写形式

@param flag int 标志位,1 表示转换整数部分,0 表示转换小数部分

@return 转换好的带单位的中文金额大写形式

private String numFormat(int flag, String s) {

int sLength = s.length();

// 货大写形式

String bigLetter[] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};

// 货单位

String unit[] = {"元", "拾", "佰", "仟", "万",

"拾", "佰", "仟",

// 亿位到万亿位

"亿", "拾", "佰", "仟", "万"};

String all[] = {"分", "角"};

// 用来存放转换后的新字符串

String newS = "";

// 逐位替换为中文大写形式

for(int i = 0; i < sLength; i ++) {

if(flag == 1) {

// 转换整数部分为中文大写形式(带单位)

newS = newS + bigLetter[s.charAt(i) - 48] + unit[sLength - i - 1];

} else if(flag == 2) {

// 转换小数部分(带单位)

newS = newS + bigLetter[s.charAt(i) - 48] + all[sLength - i - 1];

}}

return newS;

}/

把已经转换好的中文金额大写形式加以改进,清理这个字

符串里面多余的零,让这个字符串变得更加可观

注:传入的这个数应该是经过 splitNum() 方法进行处理,这个字

符串应该已经是用中文金额大写形式表示的

@param s String 已经转换好的字符串

@return 改进后的字符串

private String cleanZero(String s) {

// 如果传入的是空串则继续返回空串

}// 如果用户开始输入了很多 0 去掉字符串前面多余的‘零‘,使其看上去更符合习惯

while(s.charAt(0) == ‘零‘) {

// 将字符串中的 "零" 和它对应的单位去掉

s = s.substring(2);

if(s.length() == 0) {

return "零";

}}

// 字符串中存在多个‘零‘在一起的时候只读出一个‘零‘,并省略多余的单位

/ 由于本人对算法的研究太菜了,只能用4个正则表达式去转换了,各位大虾别介意哈... /

String regex1[] = {"零仟", "零佰", "零拾"};

String regex2[] = {"零亿", "零万", "零元"};

String regex3[] = {"亿", "万", "元"};

String regex4[] = {"零角", "零分"};

// 轮转换把 "零仟", 零佰","零拾"等字符串替换成一个"零"

for(int i = 0; i < 3; i ++) {

s = s.replaceAll(regex1[i], "零");

}// 第二轮转换考虑 "零亿","零万","零元"等情况

// "亿","万","元"这些单位有些情况是不能省的,需要保留下来

for(int i = 0; i < 3; i ++) {

// 当轮转换过后有可能有很多个零叠在一起

s = s.replaceAll("零零零", "零");

s = s.replaceAll("零零", "零");

s = s.replaceAll(regex2[i], regex3[i]);

}// 第三轮转换把"零角","零分"字符串省略

for(int i = 0; i < 2; i ++) {

s = s.replaceAll(regex4[i], "");

}// 当"万"到"亿"之间全部是"零"的时候,忽略"亿万"单位,只保留一个"亿"

s = s.replaceAll("亿万", "亿");

return s;

}}

谁帮我用ja正则表达式中的订单数字,支付金额,和时间解析出来。

String str = "尊敬的用户,您末位8237的订单,支付金额为0.01元,671906,15:08发送,请及时输入,切勿泄露,任何索取均为欺诈。";

String reg = ".末位(.)的订单.支付金额为([^元])元.(}System.out.println("n---------------------------------------------");d+),([d:]+)发.";

String a = str.replreturn "";aceAll(reg,"$1");

String b = str.replaceAll(reg,"$2");

String c = str.replaceAll(reg,"$3");

String d = str.replaceAll(reg,"$4");

求助js正则表达式关于金额的验证 怎么写

if("".equals(s)) {

var exp = /^([1-9][d]{0,7}|0)(.[d]{1,2})?$/;

可验证 大于等于零,小于等于99999999.99 的数字

测试正确

用正则表达式吧

^[1-9]{1}[0-9]{2,7}[.]{8}[0-9]{9,10}$

JAVA金额大小写转化中的问题

var regStrs = [

(C5<0,"计算错误,请重新计算",SUBSTITUTE(SUBSTITUTE(TEXT(INT(FIXED(ABS(C5))),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(FIXED(C5),2),"[dbnum2]0角0分;;"&IF(ABS(C5)>1%,"整",)),"零角",IF(ABS(C5)<1,,"零")),"零分",)))

@param s String 要转换的字符串

^(0|[1-9]d{0,11}).(dd)$是定义了金额的数字格式

(0|[1-9]d{0,11})是说或者是0, 或者1后边0~11个数字

.匹配小数点一个

(dd)匹配2个数字

js怎么判断输入的金额只能是小数点前10位,小数点后两位

/400,beos的,os

可以不用输入小数点后面的:

type="text"

onchange="if(!/^d{1,10}(.d{1,2})?$/.test(this.value)){alert('输入错误')}"

/>

必须要写2位小数点:

type="text"

onchange="if(// 要把很多个重复的零变成一个零!/^d{1,10}.d{2}?$/.test(this.value)){alert('输入错误')}"

/>

正则:

var reg = /^d{1,10}(.d{1,2})?$/;

if(reg.test("123.3453")){

alert("错误");

}

求一个JS正则表达式用于格式化英文中的金额形式。如:25663333444,格式化后为:25,663,333,444

var s = '12345237987584564656,000.00';

var d=s.replace(/(d)(?=(d{3// 把整数部分和新截取的小数部分重新拼凑这个字符串})+(?!// 拾万位到仟万位d))/g, "$1,")

js怎么验证金额只能输入一个小数点。只要有一个小数点了,点就再也不能输入了。

v = v.replace(/^0+(d+.?d).$/, '$1');

在input上加onchange,然后中写check(this.value)函数,函数内容是检查参数串中,是否有两个点,如果有的话就把input的值重置成第0字符,到第2个点前边一个字符的内容。或者是只保留一 @param s String 从命令行输入的那个数个点,过滤后边所有点后生成的字符串。

var p=^-?d+.?d$;

if(!p.test(你要测试的值)){

alert("浮点数格式错误");

}

python程序设计每种金额最少需要几张纸问题

python的

简单

的python的特点是一种语言代表了一种简单的意识形态。阅读一个良好的python程序就感觉像是在读英语,但英语很严格!这种伪代码的python的本质是它的优势之一。它可以让你专注于解决问题,而不是语言本身。

了解

正如你所看到的,python是非常容易使用。正如前面提到的,python有一个很简单的语法。

-免费,开源

python是floss(自由/开源软件)。简单地说,你可以自由地发布这个软件的拷贝,阅读它的源代码,它,把它的一部分用于新的自由软件。

floss是一个以社区为基础的知识共享的概念。这就是为什么python是那么好,原因之一

-它是一组想看看是谁创造并不断完善更好的python。

高级语言

当您使用python编程语言,你需要考虑如何管理底层细节,如程序使用的一类内存。点击看详细可移植性由于它的开源本质,python已经被移植在许多平台上(经过改动使它能够在不同的平台上工作)。如果你小心地避免使用依赖于系统的特性,那么你所有的python程序无需任何这些平台上运行。

这些平台,包括linux,windows,freebsd的,macintosh电脑时,solaris,os

/2,amiga上,aros,as

/390和z

/os,palm作系统,qnx,vms,psion公司,的acom

risc

os,vxworks的,夏普的zaurus,windows

ce和pocketpc的连!

解释性

这需要一些解释。

编译语言,如c或c

++程序可以写入到从源文件(即c或c

++)转换到您的计算机使用的语言(二进制代码,即0和1)。通过这个过程中,编译器和各种标志和选项。当你运行你的程序,链接器/加载器软件从硬盘你的程序到内存并运行。

的python,程序不需要编译成二进制代码。可以直接从源代码运行程序。在计算机内部,python解释器把源代码转换成中间形式称为字节码,然后把它翻译成机器语言的计算机并运行。事实上,因为你不再需要担心如何编译程序,如何保证正确的连接转载图书馆等,所有这些都使得使用python更加容易。因为你只需要你的python程序拷贝到另一台计算机,它可以工作,这也使得你的python程序更加便携。点击看详细的python支持面向对象的面向过程的编程也支持面向对象的编程。在这个过程中,面向对象语言中,程序是建立了由过程或仅仅是可重复使用的代码的功能。在面向对象的语言中,程序是由累积数据和功能的对象的组合。和ja相比其他主要的语言如c

++,python有实现面向对象编程一个非常强大和简单的方法。

可扩展性

如果您需要一段关键代码运行得更快或者希望某些算法不公开,你可以把你写在c或c的一部分++,然后在你的python程序来使用它们。

嵌整个就是说,如果是0.2String intOnly = s.substring(0, index);5或者1.00, 10.23, 12345.39, 1012345678.79样子的都符合条件入

可以嵌入的python你的c

/c

++程序中,让你的程序提供脚本功能。

丰富的库

python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式,文档生成,单元测试,线程,数据库,web浏览器,cgi,ftp,电子邮件,xml,xml-rpc,html,w文件,密码,gui(图形用户界面),tk和其他系统相关的作。请记住,只要是python的安装,所有这些功能都可用。这被称为python的“功能齐全”的概念。

除了标准库,还有许多其他高质量的库,如wxpython的,扭曲和python图像库等等。

js 或者 jquery 控制金额输入(可以输"0" , "0.0" ,"0.00" 小数点后最多俩位 .....)

/

var reg = /^d.?d{0,2}$/; //正则表达式

alert("金额不能小于0");

var text=$("#输入框ID").val(); //输入框内容

if(!re.test($("txtid").val())){ //验证

alert("提示内容");

}希望能对你有帮助

var reg=/^d+(.(d){1,2})?$/

var reg = /^d.?d{0,2}$/;

请教英文合同金额大写的正规表达方式

先用中文说一遍这个数吧,以防弄错。呵呵;一百二十三万四千五百六十七点八九美元。英文是:a million two dred thirty-four thousand and five dred and sixty-sn point eight nine dollars 顺利帮你学习一下吧。呵呵。million:百万thousand:千point:点 “a million”是“100万”,由于英文是没有“十万、万”这两个单位的,所以说“、十万、万”的时候用英文是用“千”作为单位,也就是“100个千、10个千”,所以上面我写的就是“two dred thirty-four thousand (234个千)”后面的比较简单,就不用说了吧。呵呵。 不知道你看不看得懂我的话。

PS:英文合同对于量值性的内容,如价格、数量、期限等,往往有十分严格的规范。一是在小写量值(数字)的后面用括号内的大写(文字数字)重写;二是量值单位准确无误;三是量值的大写要求顶格,前加动词say,单词之间疏密均匀,后加形容词only。其目的在// 以小数点为界分割这个字符串于防止篡改并表示醒目和严肃、正式等. 貌似是这样吧。咱没见过英文的合同。但据说是这样的。

望采纳$1,234,567.89:

One million two dred and thirty-four thousand five dred and sixty-sn point eight nine USA dollars

或者用Point Eighty-Nine Dollars也没有关系

可以全部字母都大写