汉字转换为阿拉伯数字,一百三十四亿一千零二十三万六千六百零九

package number_converter;

//汉字转换为阿拉伯数字
//一百三十四亿一千零二十三万六千六百零九
//最终应该转为这样:13410236609

public class MyConverter2 {
	public static void main(String[] args) {
		long d=convert("一百三十四亿一千零二十三万六千六百零九");
		System.out.println(d);
	}
	
	public static long convert(String s){
		String [] s1=s.split("亿");
		long num=restore(s1[0])  *100000000L;
		
		
		String [] s2=s1[1].split("万");
		num=restore(s2[0])  *10000L +num;
		
		num=num+restore(s2[1]);
		
		return num;
	}
	

	public static int  convertNumber(char c){
		int num=0;
		switch(c){
		case '零': num= 0;  break;
		case '一': num= 1;  break; 
		case '二': num= 2;  break; 
		case '三': num= 3;  break;
		case '四': num= 4;  break;
		case '五': num= 5;  break;
		case '六': num= 6;  break;
		case '七': num= 7;  break;
		case '八': num= 8;  break;
		case '九': num= 9;  break;
		}
		return num;
	}
	
	//  比如  一千三百五十1  还原为1351
	public static int restore(String s){
		char [] array=s.toCharArray();
		int num=0;
		
		for (int i=0;  i<array.length-1;  i++){
			if (array[i] != '零'  &&  array[i+1]=='千'  ){
				num=convertNumber( array[i] )*1000;
			}else 
			if (array[i] != '零'  &&  array[i+1]=='百'  ){
				num=num + convertNumber( array[i] )*100;
			}else 
			if (array[i] != '零'  &&  array[i+1]=='十'  ){
				num=num + convertNumber( array[i] )*10;
			}
		}
		return num+convertNumber(array[array.length-1]);
		
	}

	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值