您的位置:首页 > 编程语言 > Java开发

java 实验七 之 阿拉伯整数转换为中文大写数字(注意读法)

2012-05-10 00:02 483 查看
import java.util.*;
import java.util.Scanner;
public class Lab7 {
LinkedList Stack=new LinkedList();
private static final String[] NUMBERS = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
private static final String[] NUM = {"十", "百", "千", "万", "十万", "百万", "千万", "亿"};
/*压入栈*/
private int Len;
public void push(Object o){
Len++;
Stack.addFirst(o);
}
/*弹出栈*/
public Object pop(){
Len--;
return Stack.removeFirst();
}

/*检查栈是否为空*/
public boolean empty(){
return Stack.isEmpty();
}

public static void main(String[] args){
Lab7 ms=new Lab7();
Scanner sc = new Scanner(System.in);

int number = sc.nextInt();
int temp, up_temp;
up_temp = number%10;
temp = number%10;
if(temp != 0)
ms.push(NUMBERS[temp]);
else
ms.Len++;
for( number=number/10; number!=0 ;up_temp = temp,number=number/10){
temp = number%10;
if(0 == temp ){
if(0 != up_temp){
ms.push(NUMBERS[0]);
}else{
ms.Len++;
}
}else{
ms.push(NUM[ms.Len-1]);
ms.Len--;
ms.push(NUMBERS[temp]);
}

}
if(ms.empty()){
System.out.print( NUMBERS[0] );
}else{
while( !ms.empty() ){
System.out.print(ms.pop());
}
}
System.out.println();
}
}

/*
*0
*5
*10
*15
*100
*105
*110
*155
*1000
*1001
*1010
*1100
*1101
*
**/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: