Java学习笔记27 将数字转换为中文…
来源:互联网 发布:php csdn博客 编辑:程序博客网 时间:2024/06/05 19:14
//将命令行输入得纯数字转换为中文大写
public class CapitalToChinese
{
public static StringBuffer buffer = newStringBuffer();//存储数字转换为中文大写的变长字符串
public static int k = -1;//非零数字开始的位置
public static void main(String[] args)
{
if(args.length > 1)
{
System.out.println("用户输入的字符不都为数字,无法转换");
System.exit(0);
}
char[] array = new char[args[0].length()];
args[0].getChars(0,args[0].length(), array, 0);
for(char arr : array)
{
if(arr < '0' || arr > '9')
{
System.out.println("用户输入的字符不都为数字,无法转换");
System.exit(0);
}
}
//ArrayList<String> list = newArrayList<String>();
for(int i = 0; i < array.length; i++)
{
if('0' == array[i])
{
continue;
}
k = i;
break;
}
if(k == -1)
{
System.out.println("零");
System.exit(0);
}
CapitalToChinese chin = new CapitalToChinese();
int n = array.length - k;//数字所在的数位
chin.change(array[k],'0', n,true);
for(; k < array.length - 1; k++)
{
n = array.length - k - 1;
chin.change(array[k + 1],array[k], n,false);
}
System.out.println(buffer);
}
private void change(char ch,char last, int n,boolean m)
{
if(true == m)
{
switch(n)
{
case 1:buffer.append(finger(ch));return;
case 2:buffer.append(finger(ch) + "十");return;
case 3:buffer.append(finger(ch) + "百");return;
case 4:buffer.append(finger(ch) + "千");return;
case 5:buffer.append(finger(ch) + "万");return;
case 6:buffer.append(finger(ch) + "十");return;
case 7:buffer.append(finger(ch) + "百");return;
case 8:buffer.append(finger(ch) + "千");return;
}
return;
}
if('0' == last)
{
if('0' == ch)
{
return;
}
switch(n)
{
case 1:buffer.append("零" + finger(ch));return;
case 2:buffer.append("零" + finger(ch) + "十");return;
case 3:buffer.append("零" + finger(ch) + "百");return;
case 4:buffer.append("零" + finger(ch) + "千");return;
case 5:buffer.append("零" + finger(ch) + "万");return;
case 6:buffer.append("零" + finger(ch) + "十");return;
case 7:buffer.append("零" + finger(ch) + "百");return;
case 8:buffer.append("零" + finger(ch) + "千");return;
}
}
if('0' != last)
{
if('0' == ch)
{
return;
}
switch(n)
{
case 1:buffer.append(finger(ch));return;
case 2:buffer.append(finger(ch) + "十");return;
case 3:buffer.append(finger(ch) + "百");return;
case 4:buffer.append(finger(ch) + "千");return;
case 5:buffer.append(finger(ch) + "万");return;
case 6:buffer.append(finger(ch) + "十");return;
case 7:buffer.append(finger(ch) + "百");return;
case 8:buffer.append(finger(ch) + "千");return;
}
}
return;
}
private static String finger(char ch)
{
switch(ch)
{
case '0': return "零";
case '1': return "一";
case '2': return "二";
case '3': return "三";
case '4': return "四";
case '5': return "五";
case '6': return "六";
case '7': return "七";
case '8': return "八";
case '9': return "九";
}
return null;
}
}
0 0
- Java学习笔记27 将数字转换为中文…
- [学习笔记]Java将数字金额转换为中文金额
- java将阿拉伯数字转换为中文数字
- java将阿拉伯数字转换为中文数字
- 将数字转换为中文
- Java学习笔记 实现阿拉伯数字(一亿以内)转换为中文繁体数字
- 将人民币数字转换为中文大写
- 将阿拉伯数字转换为中文数字
- 将数字金额转换为中文输出
- IOS,将阿拉伯数字转换为中文数字
- java将中文数字替换为阿拉伯数字
- java转换中文数字为阿拉伯数字
- java中文转换为拼音的pinyin4j学习笔记
- Java将中文日期转换为日期
- java将阿拉伯数字转换为中文
- JAVA将阿拉伯数字转换为中文
- java将unicode码转换为中文
- 数字转换为中文数字
- GridView添加统计(合计)行
- Java学习笔记24 静态代理模式和动…
- Java学习笔记25 java注解(annotat…
- Codeforces Round #411 (Div. 2)
- Java学习笔记26 异常Exception
- Java学习笔记27 将数字转换为中文…
- Java学习笔记28 观察者模式(awt中…
- Java学习笔记29 内部类(Inner Cla…
- 不要在外人面前揭孩子的“短”…
- 2-1体系结构技术发展
- android动画(三)属性动画
- 程序员要拥抱变化,聊聊Android即将支持的Java 8
- e-share
- 3-1 指令系统和基本流水线