今天给各位分享java人民币小写转大写的知识,其中也会对java大小写转化进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、java中如何把大写字母转换成小写字母,小写字母转换成大写字母?2、将数字货币金额转换为大写格式3、JAVA 数字转换为中文大写的转换4、java实现人民币大写换数字5、怎样用Java将金额转换为中文大写形式6、如何用java applet做一个人民币大小写转换器
java中如何把大写字母转换成小写字母,小写字母转换成大写字母?
java提供了upper和lower方法来进行字母大小写的转换,实例如下:
//把一个字符串中的大写转为小写,小写转换为大写:思路1
public static String exChange(String str){
StringBuffer sb = new StringBuffer();
if(str!=null){
for(int i=0;istr.length();i++){
char c = str.charAt(i);
if(Character.isUpperCase(c)){
sb.append(Character.toLowerCase(c));
}else if(Character.isLowerCase(c)){
sb.append(Character.toUpperCase(c));
}
}
}
return sb.toString();
}
//把一个字符串中的大写转为小写,小写转换为大写:思路2
public static String exChange2(String str){
for(int i=0;istr.length();i++){
//如果是小写
if(str.substring(i, i+1).equals(str.substring(i, i+1).toLowerCase())){
str.substring(i, i+1).toUpperCase();
}else{
str.substring(i, i+1).toLowerCase();
}
}
return str;
}
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
Java编程语言的风格十分接近C语言、C++语言。Java是一个纯粹的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的性能。
将数字货币金额转换为大写格式
【实例描述】
在处理财务账款时,一般需要使用大写金额。如果在银行进行储蓄或转账,也需要将数字金
额写成大写格式。也就是说,如果要转账123456元,则
需要写成“壹拾贰万叁仟肆佰伍拾陆元整”。对于这种情
况,如果手动填写不仅麻烦,而且容易出错,所以我们
可以设计一个程序来自动完成数字格式的转换。本实例
实现了小写金额到大写金额的转换,实例的运行效果如
图4.2所示。
图4.2将数字货币金额转换为大写格式
【实现过程】
(1)在Eclipse中新建项目MoneyConvert,并在其中创建一个MoneyConvert.java文件。
在该类的主方法中创建标准输入流的扫描器对象,接收用户输入的数字金额。然后在通过
convert()方法把这个金额转换成大写金额的字符串格式,并输出到控制台。核心代码如下所示:
publicstaticvoidmain(String[]args){
Scannerscan=newScanner(System.in);//创建扫描器
System.out.println(“请输入一个金额”);
//获取金额转换后的字符串
Stringconvert=convert(scan.nextDouble());
System.out.println(convert);//输出转换结果
}
(2)编写金额转换方法convert(),该方法在主方法中被调用,用于金额数字向大写格式的
转换。在该方法中创建DecimalFormat类的实例对象,通过这个格式器对象把金额数字格式化,
只保留三位小数。然后分别调用getInteger()与getDecimal()方法转换整数与小数部分,并返回
转换后的结果。关键代码如下:
publicstaticStringconvert(doubled){
//实例化DecimalFormat对象
DecimalFormatdf=newDecimalFormat(“#0.###”);
//格式化double数字
StringstrNum=df.format(d);
//判断是否包含小数点
if(strNum.indexOf(“.”)!=-1){
Stringnum=strNum.substring(0,strNum.indexOf(“.”));
//整数部分大于12不能转换
if(num.length()12){
System.out.println(“数字太大,不能完成转换!”);
return””;
}
}
Stringpoint=””;//小数点
if(strNum.indexOf(“.”)!=-1){
point=”元”;
}else{
point=”元整”;
}
//转换结果
Stringresult=getInteger(strNum)+point+getDecimal(strNum);
if(result.startsWith(“元”)){//判断是字符串是否已”元”结尾
result=result.substring(1,result.length());//截取字符串
}
returnresult;//返回新的字符串
}
(3)编写getInteger()方法,用于转换数字整数部分的大写格式。在该方法中判断数字是否
包含小数点,然后把数字转换为字符串并反转字符顺序,为每个数字添加对应的大写单位。关
键代码如下:
publicstaticStringgetInteger(Stringnum){
if(num.indexOf(“.”)!=-1){//判断是否包含小数点
um=num.substring(0,num.indexOf(“.”));
}
um=newStringBuffer(num).reverse().toString();//反转字符串
StringBuffertemp=newStringBuffer();//创建一个StringBuffer
对象
for(inti=0;inum.length();i++){//加入单位
temp.append(STR_UNIT[i]);
temp.append(STR_NUMBER[num.charAt(i)-48]);
}
um=temp.reverse().toString();//反转字符串
um=numReplace(num,”零拾”,”零”);//替换字符串的字符
um=numReplace(num,”零佰”,”零”);//替换字符串的字符
um=numReplace(num,”零仟”,”零”);//替换字符串的字符
um=numReplace(num,”零万”,”万”);//替换字符串的字符
um=numReplace(num,”零亿”,”亿”);//替换字符串的字符
um=umReplace(num,”零零”,”零”);//替换字符串的字符
um=numReplace(num,”亿万”,”亿”);//替换字符串的字符
//如果字符串以零结尾将其除去
if(num.lastIndexOf(“零”)==num.length()-1){
um=num.substring(0,num.length()-1);
}
returnum;
}
publicstaticStringgetDecimal(Stringnum){
//判断是否包含小数点
if(num.indexOf(“.”)==-1){
return””;
}
um=um.substring(num.indexOf(“.”)+1);
//反转字符串
um=newStringBuffer(num).reverse().toString();
//创建一个StringBuffer对象
StringBuffertemp=newStringBuffer();
//加入单位
for(inti=0;inum.length();i++){
temp.append(STR_UNIT2[i]);
temp.append(STR_NUMBER[num.charAt(i)-48]);
}
um=temp.reverse().toString();//替换字符串的字符
um=umReplace(num,”零角”,”零”);//替换字符串的字符
um=numReplace(num,”零分”,”零”);//替换字符串的字符
um=numReplace(num,”零厘”,”零”);//替换字符串的字符
um=umReplace(num,”零零”,”零”);//替换字符串的字符
//如果字符串以零结尾将其除去
if(num.lastIndexOf(“零”)==num.length()-1){
um=num.substring(0,um.length()-1);
}
returnnum;
}
publicstaticStringumReplace(Stringnum,StringoldStr,StringnewStr)
{
while(true){
//判断字符串中是否包含指定字符
if(num.indexOf(oldStr)==-1){
break;
}
//替换字符串
num=num.replaceAll(oldStr,newStr);
}
//返回替换后的字符串
returnum;
}
【代码解析】
实现本实例的关键在于以下几点:
_将数字格式化,如果存在小数部分,将其转换为3位小数,精确到厘。
_分别将整数部分与小数部分转换为大写格式,并插入其单位(亿、万、仟??)。
_组合转换后的整数部分与小数部分。
【知识扩展】
DecimalFormat类可以指定格式化模板来格式化浮点数,如保留几位小数。通过调用该类
的format()方法可以使用指定模板来格式化任意浮点数字。
JAVA 数字转换为中文大写的转换
package com.heyang;
/**
* 将10亿以内的阿拉伯数字转成汉字大写形式
* @author xizhenyin
*
*/
public class CnUpperCaser {
// 整数部分
private String integerPart;
// 小数部分
private String floatPart;
// 将数字转化为汉字的数组,因为各个实例都要使用所以设为静态
private static final char[] cnNumbers={‘零’,’壹’,’贰’,’叁’,’肆’,’伍’,’陆’,’柒’,’捌’,’玖’};
// 供分级转化的数组,因为各个实例都要使用所以设为静态
private static final char[] series={‘元’,’拾’,’百’,’仟’,’万’,’拾’,’百’,’仟’,’亿’};
/**
* 构造函数,通过它将阿拉伯数字形式的字符串传入
* @param original
*/
public CnUpperCaser(String original){
// 成员变量初始化
integerPart=””;
floatPart=””;
if(original.contains(“.”)){
// 如果包含小数点
int dotIndex=original.indexOf(“.”);
integerPart=original.substring(0,dotIndex);
floatPart=original.substring(dotIndex+1);
}
else{
// 不包含小数点
integerPart=original;
}
}
/**
* 取得大写形式的字符串
* @return
*/
public String getCnString(){
// 因为是累加所以用StringBuffer
StringBuffer sb=new StringBuffer();
// 整数部分处理
for(int i=0;iintegerPart.length();i++){
int number=getNumber(integerPart.charAt(i));
sb.append(cnNumbers[number]);
sb.append(series[integerPart.length()-1-i]);
}
// 小数部分处理
if(floatPart.length()0){
sb.append(“点”);
for(int i=0;ifloatPart.length();i++){
int number=getNumber(floatPart.charAt(i));
sb.append(cnNumbers[number]);
}
}
// 返回拼接好的字符串
return sb.toString();
}
/**
* 将字符形式的数字转化为整形数字
* 因为所有实例都要用到所以用静态修饰
* @param c
* @return
*/
private static int getNumber(char c){
String str=String.valueOf(c);
return Integer.parseInt(str);
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(new CnUpperCaser(“123456789.12345”).getCnString());
System.out.println(new CnUpperCaser(“123456789”).getCnString());
System.out.println(new CnUpperCaser(“.123456789”).getCnString());
System.out.println(new CnUpperCaser(“0.1234”).getCnString());
System.out.println(new CnUpperCaser(“1”).getCnString());
System.out.println(new CnUpperCaser(“12”).getCnString());
System.out.println(new CnUpperCaser(“123”).getCnString());
System.out.println(new CnUpperCaser(“1234”).getCnString());
System.out.println(new CnUpperCaser(“12345”).getCnString());
System.out.println(new CnUpperCaser(“123456”).getCnString());
System.out.println(new CnUpperCaser(“1234567”).getCnString());
System.out.println(new CnUpperCaser(“12345678”).getCnString());
System.out.println(new CnUpperCaser(“123456789”).getCnString());
}
}
java实现人民币大写换数字
把数字 分成3截 亿 万 万以内 再对每一段 转换 这样 就不太容易出现 考虑不到的地方
jk.method(“壹亿贰佰陆拾捌万壹拾捌圆”);
String method1(String s){
if (s.contains(“亿”)) {
String[] array = s.split(“亿”);
return array[0];
}else {
return “”;
}
}
String method2(String s){
if (s.contains(“亿”)) {
String[] array = s.split(“亿”);
if (array[1].contains(“万”)) {
String[] arr = array[1].split(“万”);
return arr[0];
}else {
return “”;
}
}else {
if (s.contains(“万”)) {
String[] arr = s.split(“万”);
return arr[0];
}else {
return “”;
}
}
}
String method3(String s){
if (!s.contains(“万”) !s.contains(“亿”)) {
return s;
}else {
String[] arr = s.split(“万”);
return arr[arr.length-1];
}
}
long method(String num){
long high = 0;
long mid = 0;
long low = 0;
String hi =””;
String mi =””;
String lo =””;
hi = method1(num);
mi = method2(num);
lo = method3(num);
if (hi != “”) {
high = suoShu(hi)*100000000;
}
if (mi != “”) {
mid = suoShu(mi)*10000;
}
if (lo != “”) {
low = suoShu(lo);
}
System.out.println(high+mid+low);
return high+mid+low;
}
long suoShu(String num){
char[] arr = num.toCharArray();
long money = 0;
long mult = 0;
long no = 0;
for (int i = 0; i arr.length; i++) {
long temp = 0;
if (isNum(arr[i])) {
no = getNum(arr[i]);
}else if (isFlag(arr[i])) {
mult = getFlag(arr[i]);
}
if (no 0 mult 0) {
temp = no * mult;
no = 0;
mult = 0;
}
money = money + temp;
if (arr.length = 1) {
money = no * 1;
}
}
System.out.println(money);
return money;
}
long getNum(char num){
switch (num) {
case ‘零’:
return 0;
case ‘壹’:
return 1;
case ‘贰’:
return 2;
case ‘叁’:
return 3;
case ‘肆’:
return 4;
case ‘伍’:
return 5;
case ‘陆’:
return 6;
case ‘柒’:
return 7;
case ‘捌’:
return 8;
case ‘玖’:
return 9;
default:
return 0;
}
}
long getFlag(char flag){
switch (flag) {
case ‘圆’:
return 1;
case ‘拾’:
return 10;
case ‘佰’:
return 100;
case ‘仟’:
return 1000;
case ‘万’:
return 10000;
case ‘亿’:
return 100000000;
default:
return 0;
}
}
boolean isNum(char num){
switch (num) {
case ‘零’:
return true;
case ‘壹’:
return true;
case ‘贰’:
return true;
case ‘叁’:
return true;
case ‘肆’:
return true;
case ‘伍’:
return true;
case ‘陆’:
return true;
case ‘柒’:
return true;
case ‘捌’:
return true;
case ‘玖’:
return true;
default:
return false;
}
}
boolean isFlag(char flag){
switch (flag) {
case ‘圆’:
return true;
case ‘拾’:
return true;
case ‘佰’:
return true;
case ‘仟’:
return true;
case ‘万’:
return true;
case ‘亿’:
return true;
case ‘兆’:
return true;
default:
return false;
}
}
怎样用Java将金额转换为中文大写形式
String words=”12334″;
for(int i=0 ; iwords.length ; i++)
{
switch(words.charAt(i))
{
case “1”:System.out.println(“壹”);break;
case “2”:
…………..
case “0”:System.out.println(“零”);break;
}
}
大致思路是这个样子的吧。
如何用java applet做一个人民币大小写转换器
这个很简单的,主要就用到button和text两个组件。
定义两个大写的字符串数组:一个用来存“拾佰仟万”,一个存储“壹贰叁肆……”
在text框里输入内容,根据ASC码判断,如果为数字,则根据数字长度从两个数组中取值,拼接成串输出到text框;
否则,根据读取的字符转换为数字。
若有其他字符,便认为失败。
java人民币小写转大写的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java大小写转化、java人民币小写转大写的信息别忘了在本站进行查找喔。