频道栏目
首页 > 程序开发 > 软件开发 > Java > 正文
(字符串的模式匹配4.7.12)POJ 2121 Inglish-Number Translator(将英文数字转换成阿拉伯数字)
2013-10-29 11:36:19           
收藏   我要投稿
 
package com.njupt.acm;  
  
import java.util.HashMap;  
import java.util.Map;  
import java.util.Scanner;  
  
public class POJ_2121 {  
  
    public static void main(String[] args) {  
        /** 
         * negative, zero, one, two, three, four, five, six, seven,  
         * eight, nine, ten, eleven, twelve, thirteen, fourteen, fifteen, 
         *  sixteen, seventeen, eighteen, nineteen, twenty, thirty, forty, fifty,  
         *  sixty, seventy, eighty, ninety, hundred, thousand, million  
         */  
        Map map = new HashMap();  
        map.put("negative", -1);  
        map.put("zero", 0);  
        map.put("one", 1);  
        map.put("two", 2);  
        map.put("three", 3);  
        map.put("four", 4);  
        map.put("five", 5);  
        map.put("six", 6);  
        map.put("seven", 7);  
        map.put("eight", 8);  
        map.put("nine", 9);  
        map.put("ten", 10);  
        map.put("eleven", 11);  
        map.put("twelve", 12);  
        map.put("thirteen", 13);  
        map.put("fourteen", 14);  
        map.put("fifteen", 15);  
        map.put("sixteen", 16);  
        map.put("seventeen", 17);  
        map.put("eighteen", 18);  
        map.put("nineteen", 19);  
        map.put("twenty", 20);  
        map.put("thirty", 30);  
        map.put("forty", 40);  
        map.put("fifty", 50);  
        map.put("sixty", 60);  
        map.put("seventy", 70);  
        map.put("eighty", 80);  
        map.put("ninety", 90);  
        map.put("hundred", 100);  
        map.put("thousand", 1000);  
        map.put("million", 1000000);  
          
          
        Scanner scanner = new Scanner(System.in);  
          
          
        while(scanner.hasNextLine()){  
            int sum = 0;//总数  
            int acc = 0;//累加到某一步的数  
            int flag = 1;  
            String str1 = scanner.nextLine();  
              
            str1 = str1.trim();  
            if(str1.length()==0){  
                break;  
            }  
            String[] strs = str1.split(" ");  
              
              
            for(String str : strs){  
                if(str.equals("hundred")){  
                    acc *= (Integer)map.get(str);  
                }else if(str.equals("negative")){  
                    flag = -1;  
                }else if(str.equals("thousand") || str.equals("million")){  
                    sum += acc*((Integer)map.get(str));  
                    acc=0;  
                }else {  
                    acc += (Integer)map.get(str);  
                }  
            }  
              
            System.out.println(flag*(sum+acc));  
        }  
          
    }  
}  

 

点击复制链接 与好友分享!回本站首页
上一篇:IKExpression
下一篇:JAVA Swing简单框架
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站