(字符串的模式匹配4.7.12)POJ 2121 Inglish-Number Translator(将英文数字转换成阿拉伯数字)
2013-10-28 12:16
405 查看
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)); } } }
相关文章推荐
- poj 2121 字符串(英文数字->阿拉伯数字)
- poj 2121 Inglish-Number Translator 将英文翻译成罗马数字
- 阿拉伯数字转换成英文大写币别(格式化逗号分隔符后传入)
- 字符串模式匹配:POJ 3461 Oulipo
- (字符串的模式匹配4.7.19——前缀数组suffix的应用)POJ 2752 Seek the Name, Seek the Fame(求解一个字符串中前缀和后缀一样的位置)
- 阿拉伯数字转换为英文
- (字符串模式匹配4.7.10)POJ 2192 Zipper(判断第3个字符串能否有前两个字符串组成)
- 阿拉伯数字转换为英文
- (字符串的模式匹配4.7.18)POJ 2406 Power Strings(求一个字符串的最小重复串)
- 将汉字数字字符串转换成阿拉伯数字
- 将字符串中的中文(英文)字符串转化为阿拉伯数字
- 将英文字符串转换为数字
- 阿拉伯数字转换为英文
- java英文数字转换为阿拉伯数字
- Java - 正则表达式的运用(Pattern模式和Matcher匹配)—— 匹配中文,英文字母和数字及_长度详解——收集资源blog
- (字符串的模式匹配4.7.18)POJ 1961 Period(求一个串到第i个字符循环节出现的次数)
- POJ-2121 Inglish-Number Translator-数字英译汉
- python实现将英文单词表示的数字转换成阿拉伯数字的方法
- 将阿拉伯数字表示的金额转换为大写金额字符串
- 算法题--阿拉伯数字转换成英文数字