面试题06:一串英文数字转换成阿拉伯数字
已知:zero,one,two,three,four,five,six,seven,eight,nine分别对应0,1,2,3,4,5,6,7,8,9,对每一段含有这几种字符串的字符串进行转换,如:
输入:nineeightsevensixfivefourthreetwoonezero
输出:9876543210
数字的先后顺序不考虑。
代码:
public static String englishToNumber(String arr){Map<String,String> map = new HashMap<String,String>();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");String message = "";while(!"".equals(arr)){if (arr.startsWith("on") || arr.startsWith("tw") || arr.startsWith("si")) {message += map.get(arr.substring(0, 3));arr = arr.substring(3,arr.length());}if (arr.startsWith("ze") || arr.startsWith("fo") || arr.startsWith("fi") || arr.startsWith("ni")){message += map.get(arr.substring(0, 4));arr = arr.substring(4,arr.length());}if (arr.startsWith("th") || arr.startsWith("se") || arr.startsWith("ei")) {message += map.get(arr.substring(0, 5));arr = arr.substring(5,arr.length());}}return message;}@Testpublic void test(){assert("1230".equals(One.englishToNumber("onetwothreezero")));assert("5684".equals(One.englishToNumber("fivesixeightfour")));assert("158465".equals(One.englishToNumber("onefiveeightfoursixfive")));}
首先,先写了一个单元测试,然后来写具体的实现。具体的思路是把三个英文字母的,四个英文字母的和五个英文字母的分成三组。每一组里面处理字符串的方式(截取字符串的长度)是一样的,然后从Map中取出Value。使用到while循环,当目标字符串为空时不循环。
值得注意的是,这种比较笨的处理方式也有其局限性,当目标字符串较长时,while的执行体(即三个if的判断)内部的先后顺序会影响到执行的效果,最好的情况是三个if判断依次为TRUE,最坏的情况是每次都是最后一个if为TRUE。总而言这这个解答相当普通,暂时没有比较好的解法。
程序中出现的错误主要包含两点:
a.用==来比较字符串是否相等,应该有equals()等方法
b.对subString(a,b)的使用容易引发数组越界的异常
面试题06:一串英文数字转换成阿拉伯数字相关推荐
- 把英文转换成数字python_python实现将英文单词表示的数字转换成阿拉伯数字的方法...
本文实例讲述了python实现将英文单词表示的数字转换成阿拉伯数字的方法.分享给大家供大家参考.具体实现方法如下: import re _known = { 'zero': 0, 'one': 1, ...
- 中文数字转换成阿拉伯数字(一千二百三十四万五千六百七十八-->12345678)
昨天老大问我又没有写过中文数字转换成阿拉伯数字,我说没有,我说那应该简单啊,就是将中文对应的数字换成阿拉伯数字就好了啊,比如一就换成1,二就换成2-十换成10.可是那么问题来了- 一十二呢-不能是11 ...
- 如何把excel里面中文小写数字转换成阿拉伯数字
今天跟大家分享一下如何把excel里面中文小写数字转换成阿拉伯数字 1.打开要处理的Excel文件 2.将E列数据复制一份到F列中并选中 3.点击下图选项(Excel工具箱,百度即可了解详细下载安装信 ...
- python将英文单词表示的数字转换成阿拉伯数字的代码
下边内容内容是关于python将英文单词表示的数字转换成阿拉伯数字的内容. import re _known = { 'zero': 0, 'one': 1, 'two': 2, 'three': 3 ...
- python123数字转换_Python将汉字数字转换成阿拉伯数字的方法
用Python将汉字数字转换成阿拉伯数字的方法.汉字数字就是我们的大写数字:零.壹.贰.叁.肆.伍.陆.柒.捌.玖.拾,这种只有在会计人员才会常用的数字. Python把用汉字表示的数字转换为阿拉伯数 ...
- Python将汉字数字转换成阿拉伯数字的方法
Python将汉字数字转换成阿拉伯数字的方法 - 玩蛇网 http://www.iplaypy.com/code/base/b2600.html 用Python语言来为不同数字之间做转换之前就有介绍过 ...
- 如何将汉语数字转换成阿拉伯数字!
其实这个题目本身都还有点问题.汉语数字的表达方式何止一两种,而且还有很多不规范的称呼.所以,转换起来也是比较麻烦的.并且由于每个人的叫法不同,因此也不容易判定用户的输入是否合符常理和规范.这就只能靠大 ...
- php数字转英文,PHP金额数字转换成英文
PHP金额数字转换成英文 $numTable[40]="FORTY "; $numTable[50]="FIFTY "; $numTable[60]=" ...
- JavaScript:将输入的一串数字转换成中文大写,最高可写12位(千亿)
将输入的一串数字转换成中文大写,最高可写12位(千亿) 例:输入:10000,输出:壹万 输入:10010,输出:壹万零壹拾 源码: function toChineseBig(num) {// 将接 ...
最新文章
- 可视化LassoCV的系数图
- java-commons-HttpClient超时设置setConnectionTimeout和setSoTimeout
- mysql数据库设置字符集配置修改my.ini文件(windows)
- 小型机oracle命令,Oracle小型机如何选型
- Java System类runFinalization()方法及示例
- 购买原装三星内存注意事项
- java thread 几个状态_Java-Thread 线程的几种状态
- Unity学习笔记:unity介绍(一)
- 英特尔放出Linux微代码以修复Meltdown和Spectre漏洞
- Python解决模块无法引用问题之pymysql模块导入
- 在XNA 3.0 项目添加声音——通过Xact播放简单的.wav文件
- oracle 启动_oracle实验--通过gdb工具研究数据库启动过程
- How Do I? Videos for Devices
- To C、To G、To B,数字化转型
- 上海地图全图可放大_上海地图下载-上海地图全图高清版大图-地之图下载
- stata面板数据单位根检验llc_stata面板单位根检验怎样看结果?LLC、ADF_Fisher以及IPS,求助...
- APS系统在注塑行业的应用
- 减脂增肌运动和饮食结合
- android Studio里查看db文件
- ddl是什么意思网络语_ddl是什么