本帖最后由 hyz123456 于 2013-10-4 17:42 编辑
下面是我自己写的将阿拉伯数字转换成汉字的程序,因为还没有学到JAVA的输入语句,所以待转换数字先写在函数里面...
/*
需求:
写一个代码将输入的阿拉伯数字字符串转换成中国传统的汉字字符串
思路
1。定义方法类tool,添加一个汉字数组,用于查表,一个单位数组,用于添加单位。
2。定义trans方法,定义一个指针pos,指向“.”符号。
3。遍历字符串,将每个字符取出后判断是否为“。”,不是则减去48,强转为int类型作为查表ch1的指针取得相对应的数字, 将Y作为指针查表ch2取得相对应的单位.
4。定义StringBuilder 将查表得的两个值依次传入,遍历完成后toString返回
*/
class testW
{
public static void main(String[] args)
{
System.out.println(new tool("123.789").trans());
}
}
class tool
{
char[] ch1 = {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
char[] ch2 = {'厘','分','角','圆','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟','兆'};
String str;
tool(String str)
{
this.str = str;
}
public String trans()
{
int pos = str.indexOf("."); //指针,指向“。”的位置
int y = 2+pos++; //为了保证 y 的值指向ch2数组中对应的数值最高位的单位!
int num = str.length()-pos; //num为“。”后所剩余的位数
if (y>15||num>3) //确定输入的值长度不超过函数能转换的区间(厘~兆)
throw new RuntimeException("输入的值不正确!");
StringBuilder sb = new StringBuilder();
for (int x =0 ; x<str.length();x++ )
{
int t = str.charAt(x)-48;
if (t<0)
continue;
sb.append(ch1[t]); //取得数值所对应的汉字数字
sb.append(ch2[y]); //取得数值所对应的单位
y--;
}
return sb.toString();
}
}
|