已知: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:一串英文数字转换成阿拉伯数字相关推荐

  1. 把英文转换成数字python_python实现将英文单词表示的数字转换成阿拉伯数字的方法...

    本文实例讲述了python实现将英文单词表示的数字转换成阿拉伯数字的方法.分享给大家供大家参考.具体实现方法如下: import re _known = { 'zero': 0, 'one': 1, ...

  2. 中文数字转换成阿拉伯数字(一千二百三十四万五千六百七十八-->12345678)

    昨天老大问我又没有写过中文数字转换成阿拉伯数字,我说没有,我说那应该简单啊,就是将中文对应的数字换成阿拉伯数字就好了啊,比如一就换成1,二就换成2-十换成10.可是那么问题来了- 一十二呢-不能是11 ...

  3. 如何把excel里面中文小写数字转换成阿拉伯数字

    今天跟大家分享一下如何把excel里面中文小写数字转换成阿拉伯数字 1.打开要处理的Excel文件 2.将E列数据复制一份到F列中并选中 3.点击下图选项(Excel工具箱,百度即可了解详细下载安装信 ...

  4. python将英文单词表示的数字转换成阿拉伯数字的代码

    下边内容内容是关于python将英文单词表示的数字转换成阿拉伯数字的内容. import re _known = { 'zero': 0, 'one': 1, 'two': 2, 'three': 3 ...

  5. python123数字转换_Python将汉字数字转换成阿拉伯数字的方法

    用Python将汉字数字转换成阿拉伯数字的方法.汉字数字就是我们的大写数字:零.壹.贰.叁.肆.伍.陆.柒.捌.玖.拾,这种只有在会计人员才会常用的数字. Python把用汉字表示的数字转换为阿拉伯数 ...

  6. Python将汉字数字转换成阿拉伯数字的方法

    Python将汉字数字转换成阿拉伯数字的方法 - 玩蛇网 http://www.iplaypy.com/code/base/b2600.html 用Python语言来为不同数字之间做转换之前就有介绍过 ...

  7. 如何将汉语数字转换成阿拉伯数字!

    其实这个题目本身都还有点问题.汉语数字的表达方式何止一两种,而且还有很多不规范的称呼.所以,转换起来也是比较麻烦的.并且由于每个人的叫法不同,因此也不容易判定用户的输入是否合符常理和规范.这就只能靠大 ...

  8. php数字转英文,PHP金额数字转换成英文

    PHP金额数字转换成英文 $numTable[40]="FORTY "; $numTable[50]="FIFTY "; $numTable[60]=" ...

  9. JavaScript:将输入的一串数字转换成中文大写,最高可写12位(千亿)

    将输入的一串数字转换成中文大写,最高可写12位(千亿) 例:输入:10000,输出:壹万 输入:10010,输出:壹万零壹拾 源码: function toChineseBig(num) {// 将接 ...

最新文章

  1. 可视化LassoCV的系数图
  2. java-commons-HttpClient超时设置setConnectionTimeout和setSoTimeout
  3. mysql数据库设置字符集配置修改my.ini文件(windows)
  4. 小型机oracle命令,Oracle小型机如何选型
  5. Java System类runFinalization()方法及示例
  6. 购买原装三星内存注意事项
  7. java thread 几个状态_Java-Thread 线程的几种状态
  8. Unity学习笔记:unity介绍(一)
  9. 英特尔放出Linux微代码以修复Meltdown和Spectre漏洞
  10. Python解决模块无法引用问题之pymysql模块导入
  11. 在XNA 3.0 项目添加声音——通过Xact播放简单的.wav文件
  12. oracle 启动_oracle实验--通过gdb工具研究数据库启动过程
  13. How Do I? Videos for Devices
  14. To C、To G、To B,数字化转型
  15. 上海地图全图可放大_上海地图下载-上海地图全图高清版大图-地之图下载
  16. stata面板数据单位根检验llc_stata面板单位根检验怎样看结果?LLC、ADF_Fisher以及IPS,求助...
  17. APS系统在注塑行业的应用
  18. 减脂增肌运动和饮食结合
  19. android Studio里查看db文件
  20. ddl是什么意思网络语_ddl是什么

热门文章

  1. 订单派送中多久能送到_为什么2小时就可以送到的地方,同城快递却要一天?...
  2. 如何把Windows电脑变得果里果气的
  3. 有关加减乘除运算效率的简单测试
  4. 加密狗原理-高强度加密-程序加密技巧
  5. c语言结构体和联合体,C语言结构体和联合体
  6. OpenGL Partical System by Transform Feedback
  7. java 获取字符串最后一个字符
  8. 端口号及URG和PSH的区别
  9. php 换行 html_总结html,css中的各种换行方法
  10. HTML换行 元素之间产生空格