大写金额转换小写数字金额(美图2017线下笔试题)

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 17:46   11   0
package cn.edu.wtu.test;

public class Test {

 public static void main(String[] args) {
  
  String model = "零壹贰叁肆伍陆柒捌玖";//大写转小写映射字符串
  char[] m = {'万','仟','佰','拾','亿','仟','佰','拾','万','仟','佰','拾',' '}; // 最大到万亿位,不考虑小数点 存储转换结果
  String str = "叁仟万零陆佰零壹元";  //待转换字符串
  char[] s = str.toCharArray();
  for (int i = m.length-1, j = s.length - 2; j>=0; --j ) {
   int index = model.indexOf(s[j]);
   if(index !=-1){
    m[i--] = s[j] = (char) (index + 48);
   }else {
    while(s[j] != m[i]){
     m[i--] = '0';
    }
   }
  }
  
  //得到最高位,方便输出
  int index = 0 ;
  for(int i = 0 ; i < m.length; ++i){
   if( m[i] >= '0' && m[i] <= '9'){
    index = i ;
    break;
   }
  }
  
  //输出结果
  for (int i = index; i < m.length; ++i) {
   System.out.print(m[i]);
  }
  System.out.println('元');
 }
}



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP